天天看點

手把手教你如何管理程序一、檢視和控制程序二、計劃任務管理三、總結

目錄

一、檢視和控制程序

1.1檢視程序

1.1.1 ps 指令— 檢視靜态的程序統計資訊

1.1.2ps -elf 指令— 檢視靜态的程序統計資訊

1.1.3grep過濾查詢

1.1.4top指令—動态檢視程序資訊

1.1.5pgrep指令— 根據特定條件查詢程序PID資訊

1.1.6pstree指令—檢視程序樹

1.2控制程序

1.2.1手動啟動

1.2.2程序的前背景排程(Ctrl + Z 組合鍵、 jobs指令和fg指令)

1.2.3終止程式的運作

二、計劃任務管理

2.1使用at指令,設定一次性計劃任務

2.2使用crontab指令,設定周期性計劃任務、、

2.2.1crontab指令簡介

2.2.2使用crontab指令管理使用者計劃任務

三、總結

一、檢視和控制程序

  • 核心功能:程序管理、記憶體管理、檔案系統、網絡功能、驅動程式、安全功能等

    對于所有的作業系統,都有基本的功能

  • 什麼是程式?
    • 儲存在硬碟、CD光牒等媒體中的可執行的代碼和資料;
    • 檔案中靜态儲存的代碼。
  • 什麼是程序?
    • 在CPU及記憶體中運作的程式代碼;
    • 動态執行的代碼;
    • 父、子程序(每個程式可以建立一個或者多個程序)
    • 程序是正在執行的程式
  • 程序與線程的差別

        資源配置設定與排程

        ·  程序是資源競争的基本機關;

        ·  線程是程式執行的最小機關;

1.1檢視程序

1.1.1 ps 指令— 檢視靜态的程序統計資訊

常用選項:

選項 功能
a 顯示終端上的所有程序,包括其它使用者的程序。
u 表示列出程序的使用者。
x 顯示所有終端的程序。

直接執行不帶任何選項的ps指令時,将隻顯示目前使用者會話中打開的程序

基本格式:

ps aux              #基本格式
ps aux | wc -l      #結合管道符号查詢具體的數量(需要-1)      
  • 檢視目前系統的程序
    手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
  • 檢視目前線程
    手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
  • 名稱 描述
    USER 啟動該程序的使用者賬号名稱
    PID 程序的ID
    %CPU 程序占用的CPU百分比
    %MEM 占用記憶體的百分比
    Vsz 該程序使用的虛拟記憶體量(KB)
    RSS 該程序占用的實體記憶體量(KB)
    TTY 啟動程序的終端名。不是從終端啟動的程序則顯示為?
    STAT 該程序的狀态。(見表格下詳解)
    START 該程序被觸發啟動時間
    TIME 該程序實際使用CPU運作的時間
    COMMAND 程序的啟動指令
  • STAT:
    • D:不可被喚醒的休眠狀态;
    • R:正在運作狀态;
    • S:處于休眠狀态,可被喚醒;
    • T:停止狀态,可能是在背景暫停或程序處于跟蹤調試狀态;
    • Z:僵廠程序,程序己經中止,但是部分程式還在記憶體當中 ,但其父程序無法正常中止它
  • 僵廠程序: 僵屍程序是當子程序比父程序先結束,而父程序又沒有回收子程序,釋放子程序占用的資源,此時子程序将成為一個僵屍程序。如果父程序先退出 ,子程序被init接管,子程序退出後init會回收其占用的相關資源

1.1.2ps -elf 指令— 檢視靜态的程序統計資訊

選項 功能
-e 顯示系統内的所有程序資訊。
-l 使用長格式顯示程序資訊。
-f 使用完整的格式顯示程序資訊。
  • 檢視目前系統程序(比ps aux顯示的資訊多一些)
    手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
名稱 代表的意思
F 核心配置設定給程序的系統标記
s 程序的狀态
UID 啟動這些程序的使用者
PID 程序的程序ID,每個程序都有一個唯一的PID
PPID 父程序的程序号(如果該程序是由另—個程序啟動的)
C 程序生命周期中的CPU使用率
PRI 程序的優先級(越大的數字代表越低的優先級)
NI 謙讓度值用來參與決定優先級
ADDR 程序的記憶體位址
sz 假如程序被換出,所需交換空間的大緻大小
WCHAN 若該程序在睡眠,則顯示睡眠中的系統函數名
STIME 程序啟動時的系統時間
TTY 程序啟動時的終端裝置
TIME 運作程序需要的累計CPU時間
CMD 程序的啟動指令

1.1.3grep過濾查詢

由于系統中運作的程序數量較多,需要查詢某一個程序的資訊時可以結合管道操作和grep指令進行過濾。例如,執行以下操作可以過濾出包含“bash”的程序資訊

手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結

1.1.4top指令—動态檢視程序資訊

  • 動态檢視程序
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
  • 對查詢到的程序按記憶體占比大小排序,top指令後按shift+m
    手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
  • 檢視目前程序
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結

第一行:任務隊列資訊

19:11:05 系統時間
up 1:03 系統已運作時長
2 users 目前登入使用者數
load average: 0.00,0.01,0.05 平均負載,即機關時間内系統處理的任務數,後面三個數值 分别為1分鐘、5分鐘、15分鐘前到現在的平均值

第二行: 系統程序資訊

Tasks 總程序數
running 正在運作的程序數
sleeping 休眠的程序數
stopped 中止的程序數
zombie 僵死的程序數

第三行: CPU占用資訊

us 使用者占用
sy 核心占用
ni 優先級排程占用
id 空閑CPU,要了解空閑的CPU百分比,主要看%id部分
wa I/o等待占用
hi 硬體中斷占用
si 軟體中斷占用
st 虛拟化占用

第四行:記憶體占用資訊

total 總空閑記憶體
free 空閑記憶體
used 己用記憶體
lbuff/cache 實體記憶體和交換記憶體的緩沖區總和

第五行:交換空間(swap)占用資訊

total 總交換記憶體
free 空閑交換記憶體
used 已用交換記憶體
avail Mem 可用實體空間
  • top常用指令:
    指令 代表的意思
    P鍵 根據CPU使用百分比大小進行排序
    M鍵 根據駐留記憶體大小進行排序
    N鍵 根據啟動時間進行排序
    c鍵 切換顯示指令名稱和完整指令行
    h鍵 可以獲得top程式的線上幫助資訊
    q鍵 退出top程式
    數字1鍵 顯示CPU個數和狀态

1.1.5pgrep指令— 根據特定條件查詢程序PID資訊

  • 常用選項:
    -l 顯示程序名
    -U 指定特定使用者
    -t 指定終端
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結

1.1.6pstree指令—檢視程序樹

pstree指令可以檢視目前系統的程序樹,包括個各程序對應的PID号、使用者名、完整指令等資訊

手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
選項 代表的意思
-A 各程序樹之間的連接配接以ASCII字元來連接配接
-u 各程序樹之間的連接配接以Unicode字元來連接配接,在某些終端界面下可能會有錯誤
-p 同時列出每個程序的PID
-u 同時列出每個程序的所屬賬号名稱
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結

1.2控制程序

程序啟動方式為手工啟動和排程啟動

1.2.1手動啟動

  • 前台啟動:使用者輸入指令,直接執行的程式;
  • 背景啟動:在指令行尾加入“&”符号

當使用cp指令從CD光牒中制作鏡像檔案時,由于需要複制的資料較多,耗時較長,是以可結合“&”符号将複制操作放到背景運作,以便使用者可以繼續執行其他指令操作

手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結

1.2.2程序的前背景排程(Ctrl + Z 組合鍵、 jobs指令和fg指令)

  • Ctrl + Z 組合鍵: 将目前程序挂起,即調入背景并停止執行
  • jobs指令:檢視處于背景的任務清單

    [-l]選項顯示PID号

  • fg指令:将背景程序恢複到前台運作,可指定任務序列号
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結

1.2.3終止程式的運作

  • Ctrl + C組合鍵 :中斷正在執行的指令;
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
  • kill 、killall指令
    • kill用于終止指定PID号的程序
    • killall用于終止指定名稱相關的所有程序
    • -9選項用于強制終止
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
  • pkill指令:根據特定條件終止相應的程序
-U 根據程序所屬的使用者名終止相應程序;
-t 根據程序所在的終端終止相應程序。

在 xshell中建立兩個會話,一個切換到普通使用者,另一個在root模式下執行pkill 指令檢視結果。

手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結

二、計劃任務管理

2.1使用at指令,設定一次性計劃任務

  • at指令 一次性計劃任務

    服務腳本名稱:/etc/init.d/atd

    設定格式

    • at [HH:MM]  [yyyy-mm-dd]        #不帶年月日為今天執行
      atq                     #檢視未執行的一次性計劃任務
      atrm  4                         #删除第4條任務      
  • 執行個體:設定在2021年9月11日的11:49分自動執行以下任務:統計該時間點系統中由root使用者運作的程序的數量,并将該數值儲存到"/mnt/log.txt”檔案中
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
  • 執行個體:在當天的21:30時自動關閉目前系統
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結

2.2使用crontab指令,設定周期性計劃任務、、

2.2.1crontab指令簡介

  • crontab指令
    • 按照預先設定的時間周期(分鐘、小時、天.......)重複執行使用者指定的指令操作
    • 屬于周期性計劃任務
    • 服務腳本名稱:/etc/init.d/crond
  • 主要設定檔案:
    • 全局配置檔案,位于檔案: /etc/crontab(建議不要修改此檔案)
    • 系統預設的設定,位于目錄: /etc/cron.*/
    • 使用者定義的設定,位于檔案: /var/spool/cron/使用者名
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結

2.2.2使用crontab指令管理使用者計劃任務

編輯計劃任務
crontab -e [-u 使用者名]             #-u預設時預設是針對目前使用者,隻有超級使用者才可以用-u
​
檢視計劃任務
crontab -l [-u 使用者名]         
​
删除計劃任務
crontab -r [-u 使用者名]       
  • 時間數值的特殊辨別方法:
    特殊字元 說明
    *(星号) 代表任何時刻都接受的意思。
    ,(逗号) 代表分隔時段的意思
    -(減号) 代表一段時間範圍内
    /n(斜杠) n代表數字,代表每隔n機關間隔的意思
代表意義 分鐘 小時 日期 月份 指令
數字範圍 0~59 0~23 1~31 1~12 0~7 需要執行的指令

示例:0 17 * * 1-5 每周一到周五17;00

  • crontab計劃任務的配置格式
    時間周期設定  任務内容設定
    指令一定要用絕對路徑,例如cp指令,要用/usr/bin/cp,可以用which檢視指令的絕對路徑
    ​      
    手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
    手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結
手把手教你如何管理程式一、檢視和控制程式二、計劃任務管理三、總結

三、總結

1、掌握程式、程序、線程

2、檢視程序的指令:ps aux 或者ps -elf;top;pgrep;pstree;

3.如何檢視子程序?pstree ap 或者 cd /proc/數字檔案中的/stat

4.啟動程序:前台啟動;背景啟動(指令最後加&)

  1. 檢視背景任務清單:jobs
  2. 調用背景程序:fg 任務清單号
  3. ctrl+z挂起
  4. kill -9 程序号 PID
  5. pkill -9 程序号 PID
  6. killall 全部程序
  7. at 小時:分鐘 年-月-日

    指令:ctrl D儲存運作

    atq 序号

    atrm +序号

  8. crontab -e -u 使用者(不寫使用者預設目前使用者)

    crontab -l -u 使用者

    crontab -r -u 使用者

    格式:分 時 日 月 周 如果忘記可以檢視cat /etc/crontab

    *代表任意

    , 不間隔的時間,比如1,2,4 可以是每隔周幾

    — 連續的時間 ,例如:1-7

    / 間隔的頻率 1/* 每個一分鐘 1/* 每隔一個小時 1/* 每隔一天 1/* 每隔一個月

繼續閱讀