Linux 命令 ps

Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前運行的那些進程。

ps命令列出的是當前進程的快照,即當前的進程情況。若需要動態顯示進程信息,則可使用top命令

Linux進程狀態

在Linux系統上,進程有5種狀態:

  • 運行(正在運行或在運行隊列中等待)
  • 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
  • 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷髮生)
  • 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放)
  • 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行)

ps命令參數

詳細命令參數見ps --help a

  • -A 列出所有的進程
  • -w 顯示加寬可以顯示較多的資訊
  • -au 顯示較詳細的資訊
  • -aux 顯示所有(包含其他使用者的)進程

au(x) 輸出格式 :
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: 該行程的狀態:
    • D: 不可中斷的靜止 (通常爲 I/O 動作)
    • R: 正在執行中
    • S: 靜止狀態
    • T: 暫停執行
    • Z: 不存在但暫時無法消除
    • w: 沒有足夠的內存分頁可分配
    • <: 高優先序的行程
    • N: 低優先序的行程
    • L: 有內存分頁分配並鎖在內存內 (實時系統或 I/O)
  • START: 行程開始時間
  • TIME: 執行的時間
  • COMMAND: 所執行的指令

ps使用實例

aux

ps aux,顯示當前所有進程

[root@vultr ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.6  43408  3028 ?        Ss   Feb12   0:54 /usr/lib/systemd/systemd --system --deserialize 17
root         2  0.0  0.0      0     0 ?        S    Feb12   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Feb12   0:34 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Feb12   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    Feb12   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    Feb12   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        R    Feb12   1:09 [rcu_sched]
root        10  0.0  0.0      0     0 ?        S<   Feb12   0:00 [lru-add-drain]
root        11  0.0  0.0      0     0 ?        S    Feb12   0:24 [watchdog/0]
root        13  0.0  0.0      0     0 ?        S    Feb12   0:00 [kdevtmpfs]
root        14  0.0  0.0      0     0 ?        S<   Feb12   0:00 [netns]
root        15  0.0  0.0      0     0 ?        S    Feb12   0:01 [khungtaskd]
root        16  0.0  0.0      0     0 ?        S<   Feb12   0:00 [writeback]
root        17  0.0  0.0      0     0 ?        S<   Feb12   0:00 [kintegrityd]
root        18  0.0  0.0      0     0 ?        S<   Feb12   0:00 [bioset]
root        19  0.0  0.0      0     0 ?        S<   Feb12   0:00 [bioset]
root        20  0.0  0.0      0     0 ?        S<   Feb12   0:00 [bioset]
root        21  0.0  0.0      0     0 ?        S<   Feb12   0:00 [kblockd]

axjf

ps -axjf,以進程樹的方式顯示當前所有進程

[root@vultr ~]# ps -axjf
 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
    2 13018     0     0 ?           -1 S        0   0:00  \_ [kworker/0:0]
    2 13065     0     0 ?           -1 S        0   0:00  \_ [kworker/0:1]
    0     1     1     1 ?           -1 Ss       0   0:54 /usr/lib/systemd/systemd --system --deserialize 17
    1  1260  1260  1260 ?           -1 Ss       0  14:08 /usr/lib/systemd/systemd-journald
    1  1281  1281  1281 ?           -1 Ss       0   0:00 /usr/lib/systemd/systemd-udevd
    1  1486  1486  1486 ?           -1 Ssl    999   0:01 /usr/lib/polkit-1/polkitd --no-debug
    1  1489  1489  1489 ?           -1 Ss       0   0:06 /usr/lib/systemd/systemd-logind
    1  1505  1505  1505 ?           -1 Ss      81   0:04 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-acti
    1  1543  1535  1535 ?           -1 S      998   0:07 /usr/sbin/chronyd
    1  1630  1630  1630 tty1      1630 Ss+      0   0:00 /sbin/agetty --noclear tty1 linux
    1  1655  1655  1655 ?           -1 Ssl      0   0:03 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
    1  2731  2731  2731 ?           -1 Ssl      0   9:28 /usr/sbin/rsyslogd -n
    1  2732  2732  2732 ?           -1 Ss       0   2:37 /usr/sbin/sshd -D
 2732 13041 13041 13041 ?           -1 Ss       0   0:00  \_ sshd: root@pts/1
13041 13043 13043 13043 pts/1    13068 Ss       0   0:00      \_ -bash
13043 13068 13068 13043 pts/1    13068 R+       0   0:00          \_ ps -axjf

參考資料:

  1. Linux:PS命令詳解與使用
  2. Linux ps命令
  3. linux常用命令:ps命令
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章