2021-05-12 14:32:11
Linux系統中BSD風格的ps命令引數
ps命令
描述
靜態監控進程(程式被觸發後 , 執行者的許可權與屬性、程式的程式碼與所需資料等都會被載入記憶體中 , 作業系統並給予這個記憶體內的單元一個識別碼 (Process ID,PID), 可以說 , 進程就是一個正在執行中的程式,即cpu未完成的工作)。
用法
ps [options]1
選項
a ## 關於當前環境的所有進程
x | -A ## 列出所有的進程
f ## 顯示進程從屬關係
e ## 顯示進程呼叫環境工具的詳細資訊
l ## 長列表顯示進程的詳細資訊
u ## 顯示進程的使用者資訊
-a ## 顯示shell前台執行命令的進程,但不保函shell本身
-w ## 顯示加寬可以顯示較多的資訊
-au ## 顯示較詳細的資訊
-aux ## 顯示所有包含其他使用者的進程
-e ## 顯示所有執行在系統上的進程
-f ## 擴充套件了輸出,這些擴充套件的列包含了有用的資訊
-ef ## 全格式顯示進程資訊
Linux系統使用的GNU ps命令支援3種不同型別的命令列引數
BSD 風格的引數,前面不加破折線
Unix 風格的引數,前面加單破折線
GNU 風格的長引數,前面加雙破折線
STAT進程狀態(第一個字元)
R (Running): 該程式正在執行中
S (Sleep): 該程式目前正在睡眠狀態 (idle), 但可以被喚醒(signal)
D 不可被喚醒的睡眠狀態 , 通常進程可能在等待 I/O 的情況
T 停止狀態 (stop), 可能是在工作控制 ( 背景暫停 ) 或除錯(traced) 狀態
Z (Zombie): 僵屍狀態 , 程式已經終止但卻無法被移除至記憶體外
STAT進程狀態(第二個字元)
L ## 記憶體中有(頁面)鎖定空間
N ## 優先順序低
< ## 優先順序高
+ ## 前台執行
s ## 該進程是控制進程(頂級進程)
l ## 該進程是多執行緒的
範例
1、 ps l 長格式輸出
[root@test ~]# ps l
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 0 620 608 20 0 160724 17792 poll_s Ss+ tty1 0:00 /usr/bin/Xorg :0 -
4 0 1034 947 20 0 116144 2796 wait Ss pts/0 0:00 -bash
1 0 1078 1 20 0 16040 564 poll_s S pts/0 0:00 dbus-launch --auto
0 0 3494 1034 20 0 121260 984 - R+ pts/0 0:00 ps l
引數解釋
F ## 核心分配給進程的系統標記
UID ## 啟動這些進程的使用者
PID ## 進程的進程ID
PPID ## 父進程的進程號(如果該進程是由另一個進程啟動的)
PRI ## 進程的優先順序(越大的數位代表越低的優先順序)
NI ## 謙讓度值用來參與決定優先順序
VSZ ## 進程在記憶體中的大小,以千位元組(KB)為單位
RSS ## 進程在未換出時占用的實體記憶體
WCHAN ## 進程休眠的核心函數的地址
STAT ## 當前進程狀態的雙字元狀態碼
TTY ## 進程啟動時的終端裝置
TIME ## 執行進程需要的累計CPU時間
COMMAND ## 啟動程式名稱12345678910111213
2、 ps ax 輸出
[root@test ~]# ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 /usr/lib/systemd/systemd --switched-root --system --deserial
2 ? S 0:00 [kthreadd]
3 ? S 0:00 [ksoftirqd/0]
5 ? S< 0:00 [kworker/0:0H]
10 ? R 0:00 [rcu_sched]
11 ? S 0:00 [rcuos/0]
12 ? S 0:00 [watchdog/0]
... ... ... ... ...
995 ? Ssl 0:00 /usr/bin/gnome-session --autostart /usr/share/gdm/greeter/au
998 ? S 0:00 /usr/bin/dbus-launch --exit-with-session /usr/bin/gnome-sess
1034 pts/0 Ss 0:00 -bash
1048 ? Ss 0:00 /bin/dbus-daemon --fork --print-pid 4 --print-address 6 --se
1053 ? Sl 0:00 /usr/libexec/at-spi-bus-launcher
1070 ? S 0:00 /bin/dbus-daemon --config-file=/etc/at-spi2/accessibility.co
1075 ? Sl 0:00 /usr/libexec/at-spi2-registryd --use-gnome-session
1078 pts/0 S 0:00 dbus-launch --autolaunch=946cb0e817ea4adb916183df8c4fc817 --
... ... ... ... ... ...
4658 ? S 0:00 [kworker/0:1]
4898 ? R 0:00 [kworker/0:0]
4996 ? S 0:00 sleep 60
5005 ? S 0:00 sleep 3
5006 pts/0 R+ 0:00 ps ax
引數解釋
PID ## 進程的進程使用者
TTY ## 進程啟動時的終端裝置
STAT ## 當前進程狀態的雙字元狀態碼
TIME ## 執行進程需要的累計CPU時間
COMMAND ## 啟動程式名稱12345
2、 ps -ef 輸出
[root@test ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:08 ? 00:00:01 /usr/lib/systemd/systemd --switched-roo
root 2 0 0 09:08 ? 00:00:00 [kthreadd]
root 3 2 0 09:08 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 09:08 ? 00:00:00 [kworker/0:0H]
root 7 2 0 09:08 ? 00:00:00 [migration/0]
root 8 2 0 09:08 ? 00:00:00 [rcu_bh]
引數解釋
UID #啟動這些進程的使用者
PID #進程的進程使用者
PPID #父進程的進程號(如果該進程是由另一個進程啟動的)
C #進程生命週期中的CPU利用率
STIME #進程啟動時的系統時間
TTY #進程啟動時的終端裝置
TIME #執行進程需要的累計CPU時間
CMD #啟動程式名稱12345678
3、 ps -au(x) 輸出
[root@test ~]# ps -au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 618 0.0 0.4 160724 17800 tty1 Ss+ 22:25 0:00 /usr/bin/Xorg :0 -background none -v
root 2231 0.0 0.0 116144 2780 pts/0 Ss 22:50 0:00 -bash
root 2273 0.0 0.0 16040 572 pts/0 S 22:50 0:00 dbus-launch --autolaunch=946cb0e817e
root 3046 0.0 0.0 123356 1320 pts/0 R+ 23:06 0:00 ps -au
[root@test ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 49940 3944 ? Ss 22:25 0:01 /usr/lib/systemd/systemd --switched-
root 2 0.0 0.0 0 0 ? S 22:25 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 22:25 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 22:25 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 22:25 0:00 [migration/0]
... ... ... ... ... ... 1234567891011121314
其代表含義如下:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 進程擁有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的記憶體使用率
VSZ: 占用的虛擬記憶體大小
RSS: 占用的記憶體大小
TTY: 進程啟動時的終端裝置
STAT: 該進程的狀態:
D: 不可中斷的靜止
R: 正在執行中
S: 靜止狀態
T: 暫停執行
Z: 不存在但暫時無法消除
W: 沒有足夠的記憶體分頁可分配
<: 高優先序的進程
N: 低優先序的進程
L: 有記憶體分頁分配並鎖在記憶體內
START: 進程開始時間
TIME: 執行的時間
COMMAND: 所執行的指令
相關文章