天天看點

【Linux】ps指令

ps指令是基礎的監控指令,ps指令好比工具中的瑞士軍刀,它能輸出運作在系統上的所有程式的許多資訊。

參數

  • -A 顯示所有程序(與-e效果一樣)
  • -a 顯示除控制程序與無端程序外的所有程序
  • -N 顯示與指定參數不符的所有程序
  • -d 顯示除控制程序外的所有程序
  • -C 顯示包含在cmdlist清單中的程序
  • -G 顯示組ID在grplist清單中的程序
  • -U 顯示屬主的使用者ID在uerlist清單中的程序
  • -g 顯示會話或組ID在grplist清單中的程序
  • -p 顯示PID在pidlist清單中的程序
  • -s 顯示會話ID在sesslist清單中的程序
  • -t 顯示終端ID在ttylist清單中的程序
  • -u 顯示有效使用者ID在userlist清單中的程序
  • -F 顯示更多額外輸出(相對于-f參數而言)
  • -O 顯示預設輸出以外以及format清單指定的特定列
  • -M 顯示程序的安全資訊
  • -c 顯示程序的額外排程資訊
  • -f 顯示完整格式的輸出
  • -j 顯示任務資訊
  • -l 顯示長清單
  • -o 僅顯示由format指定的列
  • -y 不要顯示程序标記
  • -Z 顯示安全标簽資訊
  • -H 用層級格式來顯示資訊
  • -n 定義WCHAN列顯示的值
  • -w 采用寬輸出模式,不限寬度顯示
  • -L 顯示程序中的線程
  • -V 顯示ps的版本号

常用組合

  • ps aux  列出目前所有的正在記憶體當中的程式

           a:所有與終端相關的程序

           u:所有與終端無關的程序

           x:以使用者為中心組織程序狀态資訊顯示

  • ps –ef 顯示所有資訊,連同指令行

           -e:顯示所有程序

           -f:顯示完整格式的程序資訊

輸出資訊解釋

Linux:/usr/local/sbin # ps -ef

UID        PID  PPID  C STIME TTY          TIME CMD

root         1     0  0 Dec17 ?        00:00:02 init [5] 

root         2     0  0 Dec17 ?        00:00:00 [kthreadd]

root         3     2  0 Dec17 ?        00:00:01 [ksoftirqd/0]

root         5     2  0 Dec17 ?        00:00:02 [kworker/u:0]

root         6     2  0 Dec17 ?        00:00:00 [migration/0]

root         7     2  0 Dec17 ?        00:00:00 [watchdog/0]

  • UID      啟動這些程序的使用者
  • PID      程序ID
  • PPID     父程序ID
  • C        程序CPU中的使用率
  • STIME    程序啟動時的系統時間
  • TTY      程序啟動時的終端裝置
  • TIME     進行程序需要的累計CPU時間
  • CMD      啟動的程式名稱

如果想要檢視更多的輸出資訊

Linux:/usr/local/sbin # ps -l

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD

4 S     0 19366 19363  0  80   0 -  6459 wait   pts/2    00:00:12 bash

4 R     0 27857 19366 99  80   0 -  1182 -      pts/2    00:00:00 ps

  • F      核心配置設定給程序的系統标記
  • S      程序的狀态(O代表正在運作; S代表在睡眠; R代表可運作 正等待運作;Z代表僵化,程序已結束但父程序不存在;T代表停止)
  • PRI    程序的優先級
  • NI     謙讓度值用來參與決定優先級
  • ADDR   程序的記憶體位址
  • SZ     假如程序被換出,所需交換空間的大緻大小
  • WCHAN  程序休眠的核心函數的位址

實際案例

1.顯示所有程序資訊

Linux:/usr/local/sbin # ps -A

   PID TTY          TIME CMD

     1 ?        00:00:02 init

     2 ?        00:00:00 kthreadd

     3 ?        00:00:02 ksoftirqd/0

     5 ?        00:00:02 kworker/u:0

     6 ?        00:00:00 migration/0

     7 ?        00:00:00 watchdog/0

     8 ?        00:00:00 cpuset

     9 ?        00:00:00 khelper

2.顯示指定使用者資訊

Linux:/usr/local/sbin # ps -u root

    10 ?        00:00:00 netns

    11 ?        00:00:00 sync_supers

    12 ?        00:00:00 bdi-default

3.查找特定程序

Linux:/usr/local/sbin # ps -ef|grep sshd

root      3611     1  0 Dec17 ?        00:00:00 /usr/sbin/sshd -o PidFile=/var/run/sshd.init.pid

root     19363  3611  0 Dec17 ?        00:00:03 sshd: root@pts/2                                  

root     28205 19366 99 03:04 pts/2    00:00:00 grep sshd

作者:奔跑的金魚

繼續閱讀