圖文詳解和實驗——行程和計劃任務管理
- 一、查看行程
- 1、程式和行程的關系
- 2、查看行程靜態資訊:PS
- ①、方法一:ps aux
- ②、方法一:ps -elf
- ③、僵尸行程
- 3、查看行程動態資訊:top
- ①行程動態行
- ②、行程資訊區
- ③top常用命令
- 4、查看行程資訊:pgrep
- 5、查看行程樹:pstree
- 二、控制行程
- 1、手工啟動
- 2、調度啟動
- 3、行程的前后臺調度
- ①、Ctrl+Z組合鍵
- ②、查看處于后臺的任務:jobs
- ③、恢復掛起命令到前臺執行:fg
- 4、終止行程運行
- ①、Ctrl+C組合鍵
- ②、kill、killall命令
- ③、根據特定條件終止相應行程:pkill
- 三、計劃任務管理
- 1、一次性計劃任務:at
- 2、周期性任務設定:crontab
- ①、管理crontab計劃任務
- ②、任務配置的格式
- 3、實驗:crontab計劃
- ①、需求
- ②、開始
- ③、設定開機自啟動即可
一、查看行程
1、程式和行程的關系
| 程式 | 保存在硬碟、光碟的介質中的可執行代碼和資料 |
| 檔案中靜態保存的代碼 | |
| 行程 | 在CPU及記憶體中運行的程式代碼 |
| 動態執行的代碼 | |
| 父、子行程(每個程式可以創建一個或者多個行程) |
2、查看行程靜態資訊:PS
①、方法一:ps aux


| a | 顯示終端上的所有行程,包括其他用戶的行程 |
| u | 表示列出行程的用戶 |
| x | 顯示所有終端的行程 |

| 各個名詞的解釋 | |
| USER | 行程的用戶 |
| PID | 行程的ID |
| %CPU | 行程占用的CPU百分比 |
| %MEM | 行程占用的記憶體百分比 |
| VSZ | 行程占用的虛擬記憶體量(KB) |
| RSS | 行程占用的物理記憶體量(KB) |
| TTY | 啟動行程的終端名,不是從終端啟動的行程則顯示為 ? |
| STST(行程狀態) | D:不可中斷的休眠狀態 |
| R:正在運行狀態 | |
| S:處于休眠狀態,可被喚醒 | |
| T:停止狀態,可能是在后臺暫停或行程處于跟蹤除錯狀態 | |
| Z:僵尸行程,行程已經終止,但是部分程式還在記憶體當中 | |
| START | 行程被觸發啟動時間 |
| TIME | 行程實際使用CPU運行的時間 |
| COMMAND | 行程的啟動命令 |
②、方法一:ps -elf


| -e | 顯示系統內的所有行程資訊 |
| -l | 使用長格式顯示行程資訊 |
| -f | 使用完整的格式顯示行程資訊 |

| 各個名詞的解釋 | |
| F | 內核分配給行程的系統標記 |
| S | 行程的狀態 |
| UID | 啟動這些行程的用戶 |
| PID | 行程的行程ID |
| PPID | 父行程的行程號(如果該行程是由另一個行程啟動的) |
| C | 行程生命周期中的CPU利用率 |
| PRI | 行程的優先級(越大的數字代表優先級越低) |
| NI | 謙讓度值用來參與決定優先級 |
| ADDR | 行程的記憶體地址/td> |
| SZ | 假如行程被換出,所需交換空間的大致大小 |
| WCHAN | 若該行程在睡眠,則顯示睡眠中的系統函式名 |
| STIME | 行程啟動時的系統時間 |
| TTY | 行程啟動時的終端設備 |
| TIME | 運行行程需要的累計CPU時間 |
| CMD | 行程的啟動命令 |
③、僵尸行程
- 一個行程結束了,但是如果該行程的父行程已經先結束了,那么該行程就不會變成僵尸行程,因為每個行程結束的時候,系統都會掃描當前系統中所運行的所有行程,看有沒有哪個行程是剛剛結束的這個行程的子行程,如果是的話,就由Init來接管它,成為它的父行程,子行程退出后init會回收其占用的相關資源,
但是當子行程比父行程先結束,而父行程又沒有回收子行程,釋放子行程占用的資源,此時子行程將成為一個僵尸行程,
3、查看行程動態資訊:top


①行程動態行
| 第一行:任務佇列資訊 | 20:58:13 | 系統時間 |
| up 18:01 | 系統已運行時長 | |
| 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 | 已用記憶體 | |
| buff/cache | 物理記憶體和交換記憶體的緩沖區總和 | |
| 第五行:交換空間的資訊 | total | 總交換空間 |
| free | 空閑交換空間 | |
| used | 已用交換空間 | |
| avail Mem | 可用物理空間 |
②、行程資訊區

| 行程資訊區名詞解釋 | |
| PID | 行程ID |
| USER | 行程所有者的用戶名 |
| PR | 優先級 |
| NI | 謙讓值,負值表示高優先級,正值表示低優先級 |
| VIRT | 行程使用的虛擬記憶體大小,單位kb |
| RES | 行程使用的物理記憶體大小,單位kb |
| SHR | 共享記憶體大小,單位kb |
| S | 行程狀態 |
| %CPU | 上次更新時間到現在的CPU占用百分比 |
| %MEM | 行程使用的物理記憶體百分比 |
| TIME+ | 行程使用的CPU時間總計,單位1/100秒 |
| COMMAND | 命令名/命令列 |
③top常用命令
| P | 根據CPU使用百分比大小進行排序 |
| M | 根據駐留記憶體大小進行排序 |
| N | 根據啟動時間進行排序 |
| c | 切換顯示命令名稱和完整命令列 |
| h | 可以獲得top程式的在線幫助資訊 |
| k | 根據提示輸入指定行程的PID號并按Enter鍵終止對應的行程 |
| q | 退出top程式 |
| 數字 1 | 顯示CPU個數和狀態 |
4、查看行程資訊:pgrep

5、查看行程樹:pstree

| 選項 | -a | 顯示完整資訊 |
| -u | 列出對應用戶名 | |
| -p | 列出對應PID號 | |
| 引數 | teacher | 指定用戶 |
二、控制行程
1、手工啟動
- 前臺啟動:用戶輸入命令,直接執行程式
- 后臺啟動:在命令列尾加入“&”符號

2、調度啟動
- 使用 at 命令,設定一次性計劃任務
- 使用 crontab 命令,設定周期性計劃任務
3、行程的前后臺調度
①、Ctrl+Z組合鍵
- 將當前行程掛起,即調入后臺并停止執行

②、查看處于后臺的任務:jobs


③、恢復掛起命令到前臺執行:fg

4、終止行程運行
①、Ctrl+C組合鍵
- 中斷正在執行的命令

②、kill、killall命令
| kill | 終止指定PID號的行程 |
| killall | 終止指定名稱相關的所有行程 |
| 選項 -9 | 用于強制終止 |


③、根據特定條件終止相應行程:pkill
| -U | 根據行程所屬的用戶名終止相應行程 |
| -T | 根據行程所在的終端終止相應行程 |

三、計劃任務管理
1、一次性計劃任務:at



2、周期性任務設定:crontab
| 按照預先設定的時間周期(分鐘、小時、天、月、周)重復執行用戶指定的命令操作 | |
| 屬于周期性計劃任務 | |
| 主要設定檔案 | 全域組態檔,位于檔案:/etc/crontab |
| 系統默認的設定,位于目錄:/etc/cron.*/ | |
| 用戶自定義的設定,位于檔案:/var/spool/cron/用戶名 | |
①、管理crontab計劃任務
-
編輯計劃任務

-
查看計劃任務

-
洗掉計劃任務

②、任務配置的格式

| 欄位 | 說明 |
|---|---|
| 分鐘 | 取值為0~59之間的任意整數 |
| 小時 | 取值為0~23之間的任意整數 |
| 日期 | 取值為1~31之間的任意整數 |
| 月份 | 取值為1~12之間的任意整數 |
| 星期 | 取值為0~7之間的任意整數,0或7代表星期日 |
| 命令 | 要執行的命令或程式腳本 |
| 時間數值的特殊表示方法 | |
| * | 表示該范圍內的任意時間 |
| , | 表示間隔的多個不連續時間點 |
| - | 表示一個連續的時間范圍 |
| / | 指定間隔的時間頻率 |
3、實驗:crontab計劃
①、需求
- 每周一早上7:50自動清空FTP服務器“/var/ftp/pub”中的資料
- 每天晚上10:30自動執行以下任務
- 顯示當前系統時間并查看已掛載磁盤磁區使用情況
- 將輸出結果追加到檔案/var/log/df.log中
- 確認所設定的計劃任務表
②、開始

③、設定開機自啟動即可
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/255985.html
標籤:其他
