要對進程進行監測和控制,首先必需要了解當前進程的狀況,也就是須要查看當前進程, 而ps命令(Process Status)就是最基本同時也是很是強大的進程查看命令.node
使用該命令 能夠肯定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有殭屍、哪些進程佔用了過多的資源等等.總之大部分信息都是能夠經過執行該命令獲得的.linux
ps 爲咱們提供了進程的一次性的查看,它所提供的查看結果並不動態連續的;正則表達式
若是想對進程時間監控,應該用 top 工具。express
若是直接用ps命令,會顯示全部進程的狀態,一般結合grep命令查看某進程的狀態。工具
grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。進程
使用示例:內存
[root@node20 updateDB]# ps aux|grep ./update_stock資源
root 14232 0.0 0.0 5928 724 pts/1 S+ 18:16 0:00 grep ./update_stockio
root 25021 0.0 0.0 3056 816 ? S Apr12 0:03 ./update_stockclass
ps aux輸出格式:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
格式說明:
USER: 行程擁有者
PID: pid
%CPU: 佔用的 CPU 使用率
%MEM: 佔用的記憶體使用率
VSZ: 佔用的虛擬記憶體大小
RSS: 佔用的記憶體大小
TTY: 終端的次要裝置號碼 (minor device number of tty)
STAT: 該行程的狀態,linux的進程有5種狀態:
D 不可中斷 uninterruptible sleep (usually IO)
R 運行 runnable (on run queue)
S 中斷 sleeping
T 中止 traced or stopped
Z 僵死 a defunct (」zombie」) process
注: 其它狀態還包括W(無駐留頁), <(高優先級進程), N(低優先級進程), L(內存鎖頁).
START: 行程開始時間
TIME: 執行的時間
COMMAND:所執行的指令
1) ps a 顯示現行終端機下的全部程序,包括其餘用戶的程序。
2)ps -A 顯示全部程序。
3)ps c 列出程序時,顯示每一個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
4)ps -e 此參數的效果和指定"A"參數相同。
5)ps e 列出程序時,顯示每一個程序所使用的環境變量。
6)ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關係。
7)ps -H 顯示樹狀結構,表示程序間的相互關係。
8)ps -N 顯示全部的程序,除了執行ps指令終端機下的程序以外。
9)ps s 採用程序信號的格式顯示程序情況。
10)ps S 列出程序時,包括已中斷的子程序資料。
11)ps -t 指定終端機編號,並列出屬於該終端機的程序的情況。
12)ps u 以用戶爲主的格式來顯示程序情況。
13)ps x 顯示全部程序,不以終端機來區分。
ps是顯示當前狀態處於running的進程,grep表示在這些裏搜索,而ps aux是顯示全部進程和其狀態。
$ ps aux | grep amoeba
查到amoeba的進程
$ kill -s 9 pid
殺死進程