文章目錄
- 一、程式和行程的關系
- 二、查看行程資訊ps(靜態)
- 方法一:ps aux
- 方法二:ps -elf
- 三、查看行程資訊top(動態)
- 【1】每行對應的資訊
- 【2】行程資訊區對應解釋
- 【3】top常用命令:
- ●tty終端
- 四、查看行程資訊pgrep
- 【1】pgrep可用選項
- 五、查看行程樹pstree
- 六、行程的啟動方式
- ●手工啟動
- ●調度啟動
- ●行程的前后臺調度
- 七、終止行程的運行
- ●ctrl c、kill、killall
- ●pkill
- 八、計劃任務管理at
- 九、計劃任務管理crontab(重點)
- 1、管理crontab計劃任務
- 2、crontab任務配置的格式
- 3、時間數值的特殊表示方法
一、程式和行程的關系
●程式
保存在硬碟、光碟等介質中的可執行代碼和資料
檔案中靜態保存的代碼
●行程
在CPU及記憶體中運行的程式代碼
動態執行的代碼
父、子行程
每個程式可以創建一個或多個行程
二、查看行程資訊ps(靜態)
ps命令——查看靜態的行程統計資訊
方法一:ps aux
●a:顯示終端上的所有行程,包括其他用戶的行程
●u:表示列出行程的用戶
●x:顯示所有終端的行程

●各列的解釋:
(1)USER:行程的用戶,
(2)PID:行程的ID,
(3)%CPU:行程占用的CPU百分比,
(4)%MEM:占用記憶體的百分比,
(5)VSZ:該行程使用的虛擬記憶體量(KB),
(6)RSS:該行程占用的物理記憶體量(KB),
(7)TTY:啟動行程的終端名,不是從終端啟動的行程則顯示為 ?
(8)STAT:該行程的狀態:
D:不可中斷的休眠狀態;R:正在運行狀態;S:處于休眠狀態,可被喚醒;T:停止狀態,可能是在后臺暫停或行程處于跟蹤 除錯狀態;Z:僵尸行程,行程已經中止,但是部分程式還在記憶體當中
(9)START:該行程被觸發啟動時間,
(10)TIME:該行程實際使用CPU運行的時間,
(11)COMMAND:行程的啟動命令,
方法二:ps -elf
●-e:顯示系統內的所有行程資訊,
●-l:使用長格式顯示行程資訊,
●-f:使用完整的格式顯示行程資訊,

●各列的解釋:
(1)F:內核分配給行程的系統標記,
(2)S:行程的狀態,
(3)UID:啟動這些行程的用戶,
(4)PID:行程的行程ID,
(5)PPID:父行程的行程號(如果該行程是由另一個行程啟動的),
(6)C:行程生命周期中的CPU利用率,
(7)PRI:行程的優先級(越大的數字代表越低的優先級),
(8)NI:謙讓度值用來參與決定優先級,
(9)ADDR:行程的記憶體地址,
(10)SZ:假如行程被換出,所需交換空間的大致大小,
(11)WCHAN:若該行程在睡眠,則顯示睡眠中的系統函式名,
(12)STIME:行程啟動時的系統時間,
(13)TTY:行程啟動時的終端設備,
(14)TIME:運行行程需要的累計CPU時間,
(15)CMD:行程的啟動命令,
三、查看行程資訊top(動態)
【1】每行對應的資訊

●第一行是任務佇列資訊
①16:31:58 : 系統時間
②up 2:06 : 系統已運行時長
③5 user :當前登錄用戶數
④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:可用物理空間
【2】行程資訊區對應解釋

●行程資訊區各列解釋:
(1)PID:行程id
(2)USER:行程所有者的用戶名
(3)PR:優先級
(4)NI:謙讓度值,負值表示高優先級,正值表示低優先級
(5)VIRT:行程使用的虛擬記憶體總量,單位kb
(6)RES:行程使用的物理記憶體大小,單位kb
(7)SHR:共享記憶體大小,單位kb
(8)S:行程狀態
(9)%CPU:上次更新到現在的CPU時間占用百分比
(10)%MEM:行程使用的物理記憶體百分比
(11)TIME+:行程使用的CPU時間總計,單位1/100秒
(12)COMMAND :命令名/命令列
【3】top常用命令:
①P 鍵:根據CPU使用百分比大小進行排序
②M 鍵:根據駐留記憶體大小進行排序
③N 鍵:根據啟動時間進行排序
④c 鍵:切換顯示命令名稱和完整命令列
⑤h 鍵:可以獲得 top程式的在線幫助資訊
⑥k 鍵:根據提示輸入指定行程的 PID 號并按 Enter 鍵終止對應的行程
⑦q 鍵:退出 top 程式
⑧數字1 鍵:顯示CPU個數和狀態
●tty終端
●Centos 7系統,tty1表示圖形界面,tty2-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切換,
●pts說明是用遠程工具連接的,比如Xshell,后面的數字代表登陸的時間順序,越小證明登陸的越早
四、查看行程資訊pgrep
●pgrep命令
根據特定條件查詢行程PID資訊
● pgrep -l "行程關鍵字" #指定查看行程名
例:pgrep -l “行程關鍵字”
1、在1centos7-1中輸入vim /etc/fstab

2、再復制一個會話,來查看當前centos7-1虛擬機的行程資訊

3、進入復制會話2centos7-1中,使用pgrep -l "vim"查詢關鍵字vim的行程

【1】pgrep可用選項
● pgrep -l "行程關鍵字" -U 指定特定用戶
● pgrep -l "行程關鍵字" -t 指定終端 使用較少
例:grep -l -U
1、在1centos7-1中創建一個新用戶admin,并給與他密碼,讓他能夠使用,再切換至用戶admin,輸入vim /etc/fstab

2、我們再進入復制會話中查詢這臺虛擬機現在的行程,但是這次指定用戶,指定admin


五、查看行程樹pstree
●pstree命令
以樹形結構列出行程資訊
● pstree -aup 用戶名 #以樹形結構完整列出對應用戶名及行程號
-a:顯示完整資訊
-u:列出對應用戶名
-p:列出對應PID號

例:
1、先在1centos7-1中使用admin用戶創建一個檔案,并進入編輯

2、再進入復制會話中去以樹形結構完整列出用戶admin的行程號,行程名稱

六、行程的啟動方式
●手工啟動
①前臺啟動:用戶輸入命令,直接執行程式
②后臺啟動:在命令列尾加入“&”符號
例:多用于讓后臺自己去運行,我們無需跟蹤它的狀態,好了之后進行查詢確認無誤后使用即可
1、進行一個實驗,使用本地磁盤cdrom內部的檔案,要使用磁盤,首先掛載,然后我們人性化統計一下/mnt目錄內部空間占用情況,發現4.3G,已經很大了,然后我們,復制/mnt目錄包括目錄下所有檔案到/opt目錄中,可以看到因為非常大,需要等待,我們已經無法繼續操作了

2、遇到這種情況,有兩個解決方法,一是復制會話,再繼續操作,二就是讓它在后臺自己慢慢運行

3、使用靜態查詢行程狀態配合管道符號篩選行程號,來看該行程狀態

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

②jobs命令
jobs 【-l】
查看處于后臺的任務串列

③fg命令
將后臺行程恢復到前臺運行,可指定任務序號

七、終止行程的運行
●ctrl c、kill、killall
●ctrl+c組合鍵
①中斷正在執行的命令
●kill、killall命令
① kill用于終止指定PID號的行程
② killall用于終止指定名稱相關的所有行程
③-9選項用于強制終止
kill -9 2010和kill -9 2028在下圖中就不示范了,很簡單,kill -9 + 行程號

●pkill
根據特定條件終止相應的行程
●常用命令選項
①-U:根據行程所屬的用戶名終止相應行程
② -t:根據行程所在的終端終止相應程式
1、首先在1centos7-1上切換到用戶lisi

2、再在復制會話中將lisi用戶的行程殺掉,導致bash行程被殺掉,shell解釋器也沒有了



八、計劃任務管理at
●at命令
一次性計劃任務
at 【HH:MM】【yyyy-mm-dd】

●命令格式
[root@localhost~]#at 21:30 #不跟年月日,表示使用當前日期
at> shutdown -h now
ctrl d #提交一次性計劃任務
at> <EOT>
job 2 at Sun May 7 21:30:00 2017
[root@localhost~]# atq #查看未執行的任務串列
[root@localhost~]# atrm 1 #洗掉第一條任務


九、計劃任務管理crontab(重點)
●crontab命令
●按照預先設定的時間周期(分、時、日、月、周)重復執行用戶指定的命令操作
●屬于周期性計劃任務
●主要設定檔案
全域組態檔,位于檔案:/etc/crontab
系統默認的設定,位于目錄:/etc/cron.*/
用戶定義的設定,位于檔案:/var/spool/cron/用戶名
1、管理crontab計劃任務
●編輯計劃任務
crontab -e 【-u 用戶名】 -u預設時默認當前用戶
●查看計劃任務
crontab -l 【-u 用戶名】
●洗掉計劃任務
crontab -r 【-u 用戶名】
2、crontab任務配置的格式
| 代表意義 | 分鐘 | 小時 | 日期 | 月份 | 周 | 命令 |
|---|---|---|---|---|---|---|
| 數字范圍 | 0~59 | 0~23 | 1~31 | 1~12 | 0~7 | 需要執行的命令 |
周的數字為 0 或 7 時,都代表“星期天”的意思,
3、時間數值的特殊表示方法
*表示該范圍內的任意時間
,表示間隔的多個不連續時間點
-表示一個連續的時間范圍
/表示間隔的時間頻率
應用示例
0 17 * * 1-5 周一到周五每天17點
30 8 * * 1,3,5 周一,周三,周五8.30
0 8-18/2 * * * 8點到18點每兩小時
0 * */3 * * 每三天
crontab -e [-u root] 編輯一個計劃任務
1.每分鐘定時執行一次規則:
每1分鐘執行: */1 * * * *或者* * * * *
每5分鐘執行: */5 * * * *
2.每小時定時執行一次規則:
每小時執行: 0 * * * *或者0 */1 * * *
每天上午7點執行:0 7 * * *
每天上午7點10分執行:10 7 * * *
3.每天定時執行一次規則:
每天執行 0 0 * * *
4.每周定時執行一次規則:
每周執行 0 0 * * 0
5.每月定時執行一次規則:
每月執行 0 0 1 * *
6.每年定時執行一次規則:
每年執行 0 0 1 1 *
其他例子
5 * * * * ls 指定每小時的第5分鐘執行一次ls命令
30 5 * * * ls 指定每天的 5:30 執行ls命令
30 7 8 * * ls 指定每月8號的7:30分執行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30執行ls命令
30 6 * * 0 ls 指定每星期日的6:30執行ls命令[注:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等,]
30 3 10,20 * * ls 每月10號及20號的3:30執行ls命令[注:“,”用來連接多個不連續的時段]
25 8-11 * * * ls 每天8-11點的第25分鐘執行ls命令[注:“-”用來連接連續的時段]
*/15 * * * * ls 每15分鐘執行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令 ]
30 6 */10 * * ls 每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls命令, ]
方法二:
echo ‘30 7 * * 6 /usr/bin/systemctl httpd restart’ >> /var/spool/cron/root
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/229336.html
標籤:其他
