linux的ps aux |grep 命令
要對進程進行監測和控制,首先必須要瞭解當前進程的情況,也就是需要查看當前進程, 而ps命令(Process Status)就是最基本同時也是非常強大的進程查看命令.
使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有殭屍、哪些進程佔用了過多的資源等等.
總之大部分信息都是可以通過執行該命令得到的.
ps 爲我們提供了進程的一次性的查看,它所提供的查看結果並不動態連續的;
如果想對進程時間監控,應該用 top 工具。(top會1s一刷新)
如果直接用ps命令,會顯示所有進程的狀態,通常結合grep命令查看某進程的狀態。
grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。
使用示例:
root@ubuntu00:~/acai/mmdetection$ ps aux|grep ./python
xxx 2542 0.0 0.0 396096 94940 ? Sl 4月05 1:39 /home/xx/anaconda3/bin/python3.6 /usr/local/bin/jupyter-notebook
xx 56617 0.0 0.0 1278076 95120 pts/9 Sl+ 14:17 0:03 /home/xx/deeplearning/anaconda3/envs/open-mmlab/bin/python /home/dl/deeplear
xxx 57891 0.0 0.0 560856 49488 ? Ssl 14:40 0:01 /home/xx/deeplearning/anaconda3/envs/pytorch/bin/python -m ipykernel_launche
xxx 74158 0.0 0.0 15968 2244 pts/8 S+ 16:24 0:00 grep --color=auto./python
上面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 python //查到使用python的進程
$ kill -s 9 pid號 //殺死進程
此外,推薦一篇文章寫的也比較詳細