Linux操作系統(tǒng)PS命令詳細(xì)解析
要對(duì)進(jìn)程進(jìn)行監(jiān)測(cè)和控制,首先必須要了解當(dāng)前進(jìn)程的情況,也就是需要查看當(dāng)前進(jìn)程,而 ps 命令就是最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令。使用該命令可以確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒有僵死、哪些進(jìn)程占用了過多的資源等等。總之大部分信息都是可以通過執(zhí)行該命令得到的。
ps 為我們提供了進(jìn)程的一次性的查看,它所提供的查看結(jié)果并不動(dòng)態(tài)連續(xù)的;如果想對(duì)進(jìn)程時(shí)間監(jiān)控,應(yīng)該用 top 工具。
kill 用于殺死進(jìn)程。
1、ps 的參數(shù)說明
ps 提供了很多的選項(xiàng)參數(shù),常用的有以下幾個(gè):
l 長格式輸出;
u 按用戶名和啟動(dòng)時(shí)間的順序來顯示進(jìn)程;
j 用任務(wù)格式來顯示進(jìn)程;
f 用樹形格式來顯示進(jìn)程;
a 顯示所有用戶的所有進(jìn)程(包括其它用戶);
x 顯示無控制終端的進(jìn)程;
r 顯示運(yùn)行中的進(jìn)程;
ww 避免詳細(xì)參數(shù)被截?cái)啵?/p>
我們常用的選項(xiàng)是組合是 aux 或 lax,還有參數(shù) f 的應(yīng)用。
2、ps aux 或 lax 輸出的解釋
USER 進(jìn)程的屬主;
PID 進(jìn)程的ID;
PPID 父進(jìn)程;
%CPU 進(jìn)程占用的CPU百分比;
%MEM 占用內(nèi)存的百分比;
NI 進(jìn)程的NICE值,數(shù)值大,表示較少占用CPU時(shí)間;
VSZ 進(jìn)程虛擬大??;
RSS 駐留中頁的數(shù)量;
TTY 終端ID
STAT 進(jìn)程狀態(tài)(有以下幾種)
D 無法中斷的休眠狀態(tài)(通常 IO 的進(jìn)程);
R 正在運(yùn)行可中在隊(duì)列中可過行的;
S 處于休眠狀態(tài);
T 停止或被追蹤;
W 進(jìn)入內(nèi)存交換(從內(nèi)核2.6開始無效);
X 死掉的進(jìn)程(從來沒見過);
Z 僵尸進(jìn)程;
< 優(yōu)先級(jí)高的進(jìn)程
N 優(yōu)先級(jí)較低的進(jìn)程
L 有些頁被鎖進(jìn)內(nèi)存;
s 進(jìn)程的領(lǐng)導(dǎo)者(在它之下有子進(jìn)程);
l 多進(jìn)程的(使用 CLONE_THREAD, 類似 NPTL pthreads);
+ 位于后臺(tái)的進(jìn)程組;
WCHAN 正在等待的進(jìn)程資源;
START 啟動(dòng)進(jìn)程的時(shí)間;
TIME 進(jìn)程消耗CPU的時(shí)間;
COMMAND 命令的名稱和參數(shù);
3、應(yīng)用舉例
[root@localhost ~]# ps -aux |more
可以用 | 管道和 more 連接起來分頁查看。
[root@localhost ~]# ps -aux > ps001.txt
[root@localhost ~]# more ps001.txt
這里是把所有進(jìn)程顯示出來,并輸出到ps001.txt文件,然后再通過more 來分頁查看。
4、kill 終止進(jìn)程
有十幾種控制進(jìn)程的方法,下面是一些常用的方法:
kill -STOP [pid]
發(fā)送SIGSTOP (17,19,23)停止一個(gè)進(jìn)程,而并不消滅這個(gè)進(jìn)程。
kill -CONT [pid]
發(fā)送SIGCONT (19,18,25)重新開始一個(gè)停止的進(jìn)程。
kill -KILL [pid]
發(fā)送SIGKILL (9)強(qiáng)迫進(jìn)程立即停止,并且不實(shí)施清理操作。
kill -9 -1
終止你擁有的全部進(jìn)程。
SIGKILL 和 SIGSTOP 信號(hào)不能被捕捉、封鎖或者忽略,但是,其它的信號(hào)可以。所以這是你的終極武器