Linux操作系統(tǒng)PS命令詳細(xì)解析
要對(duì)系統(tǒng)中進(jìn)程進(jìn)行監(jiān)測(cè)控制,,用 ps 命令滿足你。
/bin/ps
ps 是顯示瞬間行程的狀態(tài),,并不動(dòng)態(tài)連續(xù);如果想對(duì)進(jìn)程運(yùn)行時(shí)間監(jiān)控,,應(yīng)該用 top 工具,。
kill 用于殺死進(jìn)程。
==============ps 的參數(shù)說明============================
l 長(zhǎng)格式輸出,;
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>
-A 列出所有的行程 -w 顯示加寬可以顯示較多的資訊 -au 顯示較詳細(xì)的資訊 -aux 顯示所有包含其他使用者的行程
-e 顯示所有進(jìn)程,環(huán)境變量 -f 全格式 -h 不顯示標(biāo)題 -l 長(zhǎng)格式 -w 寬輸出 a 顯示終端上地所有進(jìn)程,包括其他用戶地進(jìn)程 r 只顯示正在運(yùn)行地進(jìn)程 x 顯示沒有控制終端地進(jìn)程
我們常用的選項(xiàng)是組合是 aux 或 lax,還有參數(shù) f 的應(yīng)用,。
O[+|-] k1 [,[+|-] k2 [,…]] 根據(jù)SHORT KEYS,、k1、k2中快捷鍵指定地多級(jí)排序順序顯示進(jìn)程列表. 對(duì)于ps地不同格式都存在著默認(rèn)地順序指定.這些默認(rèn)順序可以被用戶地指定所覆蓋.在這里面“+”字符是可選地,“-”字符是倒轉(zhuǎn)指定鍵地方向. pids只列出進(jìn)程標(biāo)識(shí)符,之間運(yùn)用逗號(hào)分隔.該進(jìn)程列表必須在命令行參數(shù)地最后一個(gè)選項(xiàng)后面緊接著給出,中間不能插入空格.比如:ps -f1,4,5.
下介紹長(zhǎng)命令行選項(xiàng),這些選項(xiàng)都運(yùn)用“--”開頭: --sort X[+|-] key [,[+|-] key [,…]] 從SORT KEYS段中選一個(gè)多字母鍵.“+”字符是可選地,因?yàn)槟J(rèn)地方向就是按數(shù)字升序或者詞典順序.比如: ps -jax -sort=uid,-
ppid,+pid. --help 顯示幫助信息. --version 顯示該命令地版本信息.
在前面地選項(xiàng)說明中提到了排序鍵,接下來對(duì)排序鍵作進(jìn)一步說明.需要注意地是排序中運(yùn)用地值是ps運(yùn)用地內(nèi)部值,并非僅用于某些輸出格式地偽值.排序鍵列表見下表.
============排序鍵列表========================== c cmd 可執(zhí)行地簡(jiǎn)單名稱 C cmdline 完整命令行 f flags 長(zhǎng)模式標(biāo)志 g pgrp 進(jìn)程地組ID G tpgid 控制tty進(jìn)程組ID j cutime 累計(jì)用戶時(shí)間 J cstime 累計(jì)系統(tǒng)時(shí)間 k utime 用戶時(shí)間 K stime 系統(tǒng)時(shí)間 m min_flt 次要頁(yè)錯(cuò)誤地?cái)?shù)量 M maj_flt 重點(diǎn)頁(yè)錯(cuò)誤地?cái)?shù)量 n cmin_flt 累計(jì)次要頁(yè)錯(cuò)誤 N cmaj_flt 累計(jì)重點(diǎn)頁(yè)錯(cuò)誤 o session 對(duì)話ID p pid 進(jìn)程ID P ppid 父進(jìn)程ID r rss 駐留大小 R resident 駐留頁(yè) s size 內(nèi)存大小(千字節(jié)) S share 共享頁(yè)地?cái)?shù)量 t tty tty次要設(shè)備號(hào) T start_time 進(jìn)程啟動(dòng)地時(shí)間 U uid UID u user 用戶名 v vsize 總地虛擬內(nèi)存數(shù)量(字節(jié)) y priority 內(nèi)核調(diào)度優(yōu)先級(jí) ================================================
=================ps aux 或 lax 輸出的解釋=========================
2,、ps aux 或 lax 輸出的解釋
au(x) 輸出格式 : USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 進(jìn)程所有者 PID: 進(jìn)程ID
%CPU: 占用的 CPU 使用率 %MEM: 占用的內(nèi)存使用率 VSZ: 占用的虛擬內(nèi)存大小 RSS: 占用的內(nèi)存大小
TTY: 終端的次要裝置號(hào)碼 (minor device number of tty)
STAT: 進(jìn)程狀態(tài):
START: 啟動(dòng)進(jìn)程的時(shí)間,; TIME: 進(jìn)程消耗CPU的時(shí)間; COMMAND:命令的名稱和參數(shù),;
=================進(jìn)程STAT狀態(tài)====================
D 無法中斷的休眠狀態(tài)(通常 IO 的進(jìn)程),; R 正在運(yùn)行,在可中斷隊(duì)列中,; S 處于休眠狀態(tài),,靜止?fàn)顟B(tài); T 停止或被追蹤,,暫停執(zhí)行,; W 進(jìn)入內(nèi)存交換(從內(nèi)核2.6開始無效); X 死掉的進(jìn)程,; Z 僵尸進(jìn)程不存在但暫時(shí)無法消除,;
W: 沒有足夠的記憶體分頁(yè)可分配 WCHAN 正在等待的進(jìn)程資源;
<: 高優(yōu)先級(jí)進(jìn)程 N: 低優(yōu)先序進(jìn)程 L: 有記憶體分頁(yè)分配并鎖在記憶體內(nèi) (即時(shí)系統(tǒng)或捱A I/O),,即,有些頁(yè)被鎖進(jìn)內(nèi)存
s 進(jìn)程的領(lǐng)導(dǎo)者(在它之下有子進(jìn)程),; l 多進(jìn)程的(使用 CLONE_THREAD, 類似 NPTL pthreads); + 位于后臺(tái)的進(jìn)程組,;
================kill 終止進(jìn)程=========================
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)可以,。所以這是你的終極武器。
=================范例========================
$ ps PID TTY TIME COMMAND 5800 ttyp0 00:00:00 bash 5835 ttyp0 00:00:00 ps 可以看到,顯示地項(xiàng)目共分為四項(xiàng),依次為PID(進(jìn)程ID),、TTY(終端名稱),、TIME(進(jìn)程執(zhí)行時(shí)間)、COMMAND(該進(jìn)程地命令行輸入).
可以運(yùn)用u選項(xiàng)來查看進(jìn)程所有者及其他少許詳細(xì)信息,如下所示: $ ps u USER PID %CPU %MEM USZ RSS TTY STAT START TIME COMMAND test 5800 0.0 0.4 1892 1040 ttyp0 S Nov27 0:00 -bash test 5836 0.0 0.3 2528 856 ttyp0 R Nov27 0:00 ps u
在bash進(jìn)程前面有條橫線,意味著該進(jìn)程便是用戶地登錄shell,所以對(duì)于一個(gè)登錄用戶來說帶短橫線地進(jìn)程只有一個(gè).還可以看到%CPU,、%MEM兩個(gè)選項(xiàng),前者指該進(jìn)程占用地CPU時(shí)間
和總時(shí)間地百分比;后者指該進(jìn)程占用地內(nèi)存和總內(nèi)存地百分比. 在這種情況下看到了所有控制終端地進(jìn)程;當(dāng)然對(duì)于其他那些沒有控制終端地進(jìn)程還是沒有觀察到,所以這時(shí)就需要運(yùn)用x選項(xiàng).運(yùn)用x選項(xiàng)可以觀察到所有地進(jìn)程情況.
1)ps a 顯示現(xiàn)行終端機(jī)下的所有程序,,包括其他用戶的程序。 2)ps -A 顯示所有程序,。 3)ps c 列出程序時(shí),,顯示每個(gè)程序真正的指令名稱,而不包含路徑,,參數(shù)或常駐服務(wù)的標(biāo)示,。 4)ps -e 此參數(shù)的效果和指定"A"參數(shù)相同。 5)ps e 列出程序時(shí),,顯示每個(gè)程序所使用的環(huán)境變量,。 6)ps f 用ASCII字符顯示樹狀結(jié)構(gòu),表達(dá)程序間的相互關(guān)系,。 7)ps -H 顯示樹狀結(jié)構(gòu),,表示程序間的相互關(guān)系。 8)ps -N 顯示所有的程序,,除了執(zhí)行ps指令終端機(jī)下的程序之外,。 9)ps s 采用程序信號(hào)的格式顯示程序狀況。 10)ps S 列出程序時(shí),,包括已中斷的子程序資料,。 11)ps -t<終端機(jī)編號(hào)> 指定終端機(jī)編號(hào),并列出屬于該終端機(jī)的程序的狀況,。 12)ps u 以用戶為主的格式來顯示程序狀況,。 13)ps x 顯示所有程序,不以終端機(jī)來區(qū)分,。
最常用的方法是ps -aux,然后再用管道符號(hào)導(dǎo)向到grep去查找特定的進(jìn)程,然后再對(duì)特定的進(jìn)程進(jìn)行操作,。
|