1. 程式人生 > >linux每日命令(2):ps命令

linux每日命令(2):ps命令

www. 格式 顯示 eight comm oca clas 多個 linu

ps命令真是我比較常用的命令了,只是也沒咋仔細研究過,最大的用處就是寫代碼的時候,起了多進程,就會占用多個進程,如果程序異常了,進程確沒有kill掉,那麽再啟動程序就會報錯

正常起項目

技術分享圖片

如果進程被占用了,就會發生:

技術分享圖片

這時候我就會用到ps 去查哪些進程被占用了,然後給它kill 掉

技術分享圖片

kill 掉無用的進程

技術分享圖片

這就是我平時的用處了,可是ps 仔細研究一下,用處還是很多的

Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前運行的那些進程。ps命令列出的是當前那些進程的快照,就是執行ps命令的那個時刻的那些進程,如果想要動態的顯示進程信息,就可以使用top命令

要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,而 ps 命令就是最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等。總之大部分信息都是可以通過執行該命令得到的。

一.命令格式:

ps [參數]

二.命令功能:

用於顯示當前進程 (process) 的狀態。

三.命令參數:

參數描述
-A 列出所有的行程
-e 等於“-A”
-a 顯示現行終端機下的所有進程,包括其他用戶的進程;
-u 以用戶為主的進程狀態 ;
x 通常與 a 這個參數一起使用,可列出較完整信息。
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的行程
-f 做一個更為完整的輸出。

四. 使用實例

1.顯示指定用戶信息

ps -u root

技術分享圖片

2.顯示所有進程信息,連帶命令行

技術分享圖片

3.ps 與grep 常用組合用法,查找特定進程

ps -ef|grep uwsgi

[root@localhost autoAweme]# ps -ef|grep uwsgi
root      30568    795  0 12月01 ?      00:00:19 /home/hc/project/envs/pgc/bin/uwsgi --ini /home/hc/project/pgc.ini
root      
30578 30568 0 12月01 ? 00:00:00 /home/hc/project/envs/pgc/bin/uwsgi --ini /home/hc/project/pgc.ini root 66069 795 1 12:07 ? 00:04:29 /home/hc/project/envs/autoAweme/bin/uwsgi --ini /home/hc/project/autoAweme.ini root 66096 66069 0 12:07 ? 00:00:01 /home/hc/project/envs/autoAweme/bin/uwsgi --ini /home/hc/project/autoAweme.ini root 80022 86053 0 16:06 pts/1 00:00:00 grep --color=auto uwsgi

4.將目前屬於您自己這次登入的 PID 與相關信息列示出來

ps -l

技術分享圖片

說明:

各相關信息的意義:

標誌意義
F 代表這個程序的旗標 (flag), 4 代表使用者為 super user
S 代表這個程序的狀態 (STAT),關於各 STAT 的意義將在內文介紹
UID 程序被該 UID 所擁有
PID 就是這個程序的 ID !
PPID 則是其上級父程序的ID
C CPU 使用的資源百分比
PRI 指進程的執行優先權(Priority的簡寫),其值越小越早被執行;
NI 這個進程的nice值,其表示進程可被執行的優先級的修正數值。
ADDR 這個是內核函數,指出該程序在內存的那個部分。如果是個 running的程序,一般就是 "-"
SZ 使用掉的內存大小
WCHAN 目前這個程序是否正在運作當中,若為 - 表示正在運作
TTY 登入者的終端機位置
TIME 使用掉的 CPU 時間。
CMD 所下達的指令為何

5.列出目前所有的正在內存當中的程序

ps aux

結果

[root@localhost autoAweme]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1 125804  4260 ?        Ss   11月30   0:15 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    11月30   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    11月30   0:56 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   11月30   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    11月30   1:01 [migration/0]
root          8  0.0  0.0      0     0 ?        S    11月30   0:00 [rcu_bh]
root          9  0.3  0.0      0     0 ?        S    11月30  19:02 [rcu_sched]

說明

標誌意義
USER 該 process 屬於那個使用者賬號的
PID 該 process 的號碼
%CPU 該 process 使用掉的 CPU 資源百分比
%MEM 該 process 所占用的物理內存百分比
VSZ 該 process 使用掉的虛擬內存量 (Kbytes)
RSS 該 process 占用的固定的內存量 (Kbytes)
TTY 該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程序,若為 pts/0 等等的,則表示為由網絡連接進主機的程序。
STAT 該程序目前的狀態
START 該 process 被觸發啟動的時間
TIME 該 process 實際使用 CPU 運作的時間
COMMAND 該程序的實際指令

感謝https://www.cnblogs.com/huchong/p/10065246.html

linux每日命令(2):ps命令