首頁 > 軟體

Linux系統中BSD風格的ps命令引數

2020-06-16 16:46:03

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: 所執行的指令


IT145.com E-mail:sddin#qq.com