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
作者:奔跑的金魚