13.1 進(jìn)程管理
13.1.1? 進(jìn)程查看
1破讨、 進(jìn)程簡介
? 進(jìn)程是正在執(zhí)行的一個程序或命令,每一個進(jìn)程都是一個運(yùn)行的實(shí)體奕纫,都有自己的地址空間提陶,并占用一定的系統(tǒng)資源。
2匹层、 進(jìn)程管理的作用
? 判斷服務(wù)器健康狀態(tài)
? 查看系統(tǒng)中所有進(jìn)程
? 殺死進(jìn)程
3隙笆、 查看系統(tǒng)中所有進(jìn)程
[root@localhost ~]# ps aux
#查看系統(tǒng)中所有進(jìn)程,使用BSD操作系統(tǒng)格式
#a表示所有前臺進(jìn)程升筏,x表示所有后臺進(jìn)程撑柔,u表示該進(jìn)程由哪個用戶產(chǎn)生。合起來使用
[root@localhost ~]# ps -le
#查看系統(tǒng)中所有進(jìn)程您访,使用Linux標(biāo)準(zhǔn)命令格式铅忿。
#l顯示更加詳細(xì)的信息,e表示所有者
每一列含義:
USER:該進(jìn)程是由哪個用戶產(chǎn)生的灵汪;
PID:進(jìn)程的ID號檀训;
%CPU:該進(jìn)程占用CPU資源的百分比,占用越高享言,進(jìn)程越耗費(fèi)資源峻凫;
%MEN:該進(jìn)程占用物理內(nèi)存的百分比,占用越高览露,進(jìn)程越耗費(fèi)資源荧琼;
VSZ: 該進(jìn)程占用虛擬內(nèi)存的大小,單位KB;
RSS:該進(jìn)程占用實(shí)際物理內(nèi)存的大小命锄,單位KB堰乔;
TTY:該進(jìn)程是在哪個終端中運(yùn)行的。其中tty1-tty7代表本地控制臺終端累舷,tty1-tty6是本地的字符界面終端浩考,tty7 是圖形終端夹孔。pts/0-255代表虛擬終端被盈,或者遠(yuǎn)程登錄終端。問號(搭伤?)表示由內(nèi)核直接產(chǎn)生
STAT:進(jìn)程狀態(tài)只怎。常見的狀態(tài)有:
R:運(yùn)行
? S:睡眠
? T:停止?fàn)顟B(tài)
? s:包含子進(jìn)程
? +:位于后臺
START:該進(jìn)程的啟動時間
TIME:該進(jìn)程占用CPU的運(yùn)算時間,注意不是系統(tǒng)時間
COMMAND:產(chǎn)生此進(jìn)程的命令名
tips: ps aux 和 ps -ef 區(qū)別
兩者沒太大差別怜俐,討論這個問題身堡,要追溯到Unix系統(tǒng)中的兩種風(fēng)格,System V風(fēng)格和BSD 風(fēng)格拍鲤,ps aux最初用到Unix Style中贴谎,而ps -ef被用在System V Style中,兩者輸出略有不同〖疚龋現(xiàn)在的大部分Linux系統(tǒng)都是可以同時使用這兩種方式的擅这。
ps aux 是用BSD的格式來顯示 java這個進(jìn)程
顯示的項目有:USER?,?PID?, %CPU , %MEM , VSZ ,?RSS?,?TTY?,?STAT?,?START?,?TIME?,?COMMAND
ps -ef?是用標(biāo)準(zhǔn)的格式顯示java這個進(jìn)程
顯示的項目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD
其中各列的內(nèi)容意思如下
UID? ? //用戶ID、但輸出的是用戶名
PID? ? //進(jìn)程的ID
PPID? ? //父進(jìn)程ID
C? ? ? //進(jìn)程占用CPU的百分比
STIME? //進(jìn)程啟動到現(xiàn)在的時間
TTY? ? //該進(jìn)程在那個終端上運(yùn)行景鼠,若與終端無關(guān)仲翎,則顯示? 若為pts/0等,則表示由網(wǎng)絡(luò)連接主機(jī)進(jìn)程铛漓。
CMD? ? //命令的名稱和參數(shù)
4溯香、 查看系統(tǒng)健康狀態(tài)
[root@localhost]#? top [ 選項]
選項:
- d? 秒數(shù): 指定top命令每隔幾秒更新。默認(rèn)是3秒 在top命令的交互模式當(dāng)中可以執(zhí)行的命令:?
在top命令中直接按這些鍵:
浓恶?或h:? 顯示交互模式的幫助?
P:? 以CPU使用率排序玫坛,默認(rèn)就是此項?
M:? 以內(nèi)存的使用率排序?
N:? 以PID排序?
q:? 退出top
第一行信息為任務(wù)隊列信息 [重點(diǎn)關(guān)注load average]
第二行為進(jìn)程信息?
第三行為CPU信息 [重點(diǎn)關(guān)注 id(空閑cpu百分比)]
第四行為物理內(nèi)存信息 [重點(diǎn)關(guān)注free]
第五行為交換分區(qū)(swap)信息
5、 查看進(jìn)程樹
[root@localhost]# pstree? [選項]
選項:?
- p : 顯示進(jìn)程的PID?
- u : 顯示進(jìn)程的所屬用戶
13.1.2 終止進(jìn)程
1包晰、 kill命令 (后面跟的是pid)
[root@localhost ~]# kill –l
#查看可用的進(jìn)程信號
[root@localhost ~]# kill -1 22354
#重啟進(jìn)程?
[root@localhost ~]# kill -9 22368
#強(qiáng)制殺死進(jìn)程
2湿镀、 killall命令 (后面跟的是進(jìn)程名)
[root@localhost]# killall [ 選項][信號] 進(jìn)程名
#按照進(jìn)程名殺死進(jìn)程 ,殺死同一類型名的進(jìn)行
選項:?
- i : 交互式,詢問是否要?dú)⑺滥硞€進(jìn)程?
- I : 忽略進(jìn)程名的大小寫?
如:killall httpd
3杜窄、 pkill命令(后面跟的是進(jìn)程名)
[root@localhost]# pkill? [ 選項] [信號] 進(jìn)程名
#按照進(jìn)程名終止進(jìn)程
選項:?
- t? 終端號: 按照終端號踢出用戶
按照終端號踢出用戶
[root@localhost ~]# w
#使用w命令查詢本機(jī)已經(jīng)登錄的用戶?
[root@localhost ~]# pkill -t -9 pts/1
#強(qiáng)制殺死從pts/1虛擬終端登錄的進(jìn)程
13.2 工作管理
1肠骆、 把程序放入后臺
1)即在命令之后加一個 &? ,該程序還在運(yùn)行
2)或者 按下Ctrl+z? 該程序暫停了
?tar -zcf etc.tar.gz /etc &? [程序還在運(yùn)行]
?[root@localhost ~]# top
#在top命令執(zhí)行的過程中塞耕,按下ctrl+z快捷鍵? [程序暫停蚀腿,除非恢復(fù)]
2、 查看后臺的工作
[root@localhost]# jobs [-l]
選項:
-l: 顯示工作的PID,即工作號
注:"+"號表示最近一個放入后臺的工作莉钙,也是工作恢復(fù)時廓脆,默認(rèn)恢復(fù)的工作。
"-"號代表倒數(shù)第二個放入后臺的工作
3磁玉、 將后臺暫停的工作恢復(fù)到前臺執(zhí)行
[root@localhost]# fg %工作號
參數(shù):
%工作號:%號可以省略停忿,但是注意工作號和PID的區(qū)別
如:fg %1
4、 把后臺暫停的工作恢復(fù)到后臺執(zhí)行
[root@localhost]# bg %工作號
%工作號:%號可以省略蚊伞,但是注意工作號和PID的區(qū)別
注:后臺恢復(fù)執(zhí)行的命令席赂,是不能和前臺有交互的,否則不能恢復(fù)到后臺執(zhí)行时迫。
即:命令和前臺有交互是不能恢復(fù)到后臺運(yùn)行颅停。例如:top,vim
13.3 系統(tǒng)資源查看
1、 vmstat命令監(jiān)控系統(tǒng)資源
[root@localhost ~]# vmstat [刷新延時 刷新次數(shù)]?
例如:
[root@localhost proc]# vmstat 1 3?
表示監(jiān)聽3次掠拳,每次間隔1秒
2癞揉、 dmesg開機(jī)時內(nèi)核檢測信息
[root@localhost ~]# dmesg
[root@localhost ~]# dmesg | grep CPU
3、 free命令查看內(nèi)存使用狀態(tài)
[root@localhost ~]# free [-b|-k|-m|-g]
選項:?
-b: 以字節(jié)為單位顯示?
-k: 以KB為單位顯示溺欧,默認(rèn)就是以? KB為單位顯示?
-m: 以MB為單位顯示?
-g: 以GB為單位顯示?
緩存和緩沖的區(qū)別
?簡單來說緩存(cache)是用來加速數(shù)據(jù)從硬盤中“讀取”的喊熟,而緩沖(buffer)是用來加速數(shù)據(jù)“寫入”硬盤的。
tips:向硬盤寫入數(shù)據(jù)的時候,先存在緩沖中,達(dá)到一定規(guī)模后,寫入到硬盤姐刁。減少寫入寫出操作芥牌。
4、 查看CPU信息
[root@localhost ~]# cat /proc/cpuinfo?
每次開機(jī)都會檢測龙填,一旦斷電就會消失
5胳泉、 uptime命令
[root@localhost ~]# uptime?
#顯示系統(tǒng)的啟動時間和平均負(fù)載,也就是top命令的第一行岩遗。w命令也可以看到這個數(shù)據(jù)扇商。
6、 查看系統(tǒng)與內(nèi)核相關(guān)信息
[root@localhost ~]# uname [選項]
選項:
-a: 查看系統(tǒng)所有相關(guān)信息宿礁;?
-r: 查看內(nèi)核版本案铺;?
-s: 查看內(nèi)核名稱。
判斷當(dāng)前系統(tǒng)的位數(shù)
[root@localhost ~]# file /bin/ls
查詢當(dāng)前Linux系統(tǒng)的發(fā)行版本
[root@localhost ~]# lsb_release -a?
7梆靖、 列出進(jìn)程打開或使用的文件信息
[root@localhost ~ ] #? lsof [ 選項]
# 列出進(jìn)程調(diào)用或打開的文件的信息
選項:
- c? 字符串: 只列出以字符串開頭的進(jìn)程打開的文件?
- u? 用戶名: 只列出某個用戶的進(jìn)程打開的文? 件?
- p? pid :? 列出某個PID進(jìn)程打開的文件
如: lsof -c init
13.4 系統(tǒng)定時任務(wù)
1控汉、 crond服務(wù)管理與訪問控制 (默認(rèn)安裝,且開機(jī)默認(rèn)啟動的返吻,可用命令 ps -aux | grep crond 查看相關(guān)進(jìn)程信息姑子。用chkconfig --list | grep crond 查看啟動信息)
[root@localhost ~]# service crond restart?
重啟
[root@localhost ~]# chkconfig crond on
自啟動
2、 用戶的crontab設(shè)置
[root@localhost ~]# crontab [選項]
選項:?
-e:? 編輯crontab定時任務(wù)?
-l:? 查詢crontab任務(wù)?
-r:? 刪除當(dāng)前用戶所有的crontab任務(wù)
[root@localhost ~]# crontab -e
#進(jìn)入crontab編輯界面测僵。會打開vim編輯你的工作街佑。
最小識別時間為分鐘
* * * * * 執(zhí)行的任務(wù)
星號表示任意時間
舉例
*/5 * * * * /bin/echo ”11” >> /tmp/test
5 5 * * 2 /sbin/shutdown -r now?
0 5 1,10,15 * * /root/sh/autobak.sh
[yasuo@local1 tmp]$ crontab -l
*/1 * * * * echo "你好谢翎,明天$(date)" >> /tmp/test
[yasuo@local1 tmp]$ cat test
你好,明天2020年 04月 14日 星期二 00:24:01 CST
你好沐旨,明天2020年 04月 14日 星期二 00:25:01 CST