如何查看linux下進程狀態
ps 查看靜態的進程信息
可以使用man 來查看 ps 的使用參數 以下是幾個常使用到得,
a 顯示當前終端的所有進程信息
u 使用以用戶為主的格式輸出進程信息
x 顯示當前用戶在所有終端下的進程信息
-e 顯示 系統內的所有進程
ps 只顯示當前用戶打開的進程
PID TTY TIME CMD
1949 pts/1 00:00:00 bash
2279 pts/1 00:00:00 ps
]# ps aux 顯示系統中所有進程信息
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S< 16:07 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN 16:07 0:00 [ksoftirqd/0]
root 6 0.0 0.0 0 0 ? S< 16:07 0:00 [khelper]
root 7 0.0 0.0 0 0 ? S< 16:07 0:00 [kthread]
root 173 0.0 0.0 0 0 ? S< 16:07 0:00 [cqueue/0]
root 176 0.0 0.0 0 0 ? S< 16:07 0:00 [khubd]
root 178 0.0 0.0 0 0 ? S< 16:07 0:00 [kseriod]
root 243 0.0 0.0 0 0 ? S< 16:07 0:00 [kswapd0]
root 244 0.0 0.0 0 0 ? S< 16:07 0:00 [aio/0]
root 496 0.0 0.0 0 0 ? S< 16:07 0:00 [ata_aux]
root 501 0.0 0.0 0 0 ? S< 16:07 0:00 [kstriped]
root 510 0.0 0.0 0 0 ? S< 16:07 0:00 [ksnapd]
root 2087 0.1 2.2 31304 11408 ? Ss 19:58 0:00 /usr/sbin/httpd
root 2115 0.0 0.1 2528 640 ? S 19:59 0:00 /usr/local/apache2/bin/rotatel
apache 2119 0.0 1.2 31304 6380 ? S 19:59 0:00 /usr/sbin/httpd
註釋 以上所顯示代表的內容
user 啟動該進程的用戶賬號名稱
PID 該進程在系統中的ID 號
%cpu使用的cpu 百分比
%MEM 內存占用百分比
VSZ 占用虛擬內存的大小
RSS 占用物理內存的大小
TTY 該進程在那個終端運行
START 啟動該進程的時間
TIME 該進程占用cpu的時間
COMMAND 啟動該進程的命令的名稱
2 top 動態顯示系統進程信息
[root@www ~]# top
top - 20:08:54 up 4:01, 5 users, load average: 0.07, 0.17, 0.45
Tasks: 141 total, 1 running, 139 sleeping, 0 stopped, 1 zombie
Cpu(s): 6.1%us, 4.2%sy, 0.0%ni, 87.5%id, 1.7%wa, 0.0%hi, 0.6%si, 0.0%st
Mem: 515340k total, 433076k used, 82264k free, 20548k buffers
Swap: 522072k total, 84k used, 521988k free, 217348k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1884 root 15 0 100m 17m 10m S 1.5 3.6 0:05.93 gnome-terminal
241 root 15 0 0 0 0 S 0.2 0.0 0:01.49 pdflush
2491 root 18 0 2336 1036 800 R 0.2 0.2 0:00.17 top
2492 xiaowang 15 0 10192 3304 2172 S 0.2 0.6 0:00.32 vim
3957 root 15 0 41212 12m 8584 S 0.2 2.5 0:22.81 metacity
3961 root 15 0 83120 14m 9.8m S 0.2 2.8 0:03.07 gnome-panel
4035 root 15 0 70804 15m 10m S 0.2 3.0 0:13.07 wnck-applet
4637 root 15 0 12044 1160 940 S 0.2 0.2 0:11.90 scim-bridge
4638 root 15 0 16672 2184 1420 S 0.2 0.4 0:08.75 gnome-screensav
1 root 15 0 2072 620 532 S 0.0 0.1 0:01.42 init
註釋以上顯示代表的內容
第一行是任務隊列信息,等同於同uptime 命令的執行結果。其內容如下
表示 當前系統時間 系統運行時間 登錄用戶數 平均負載
第二、三行為進程和CPU的信息。
Tasks: 141 total, 進程總數 1 running 正在運行的進程數
139 sleeping 休眠的進程數 0 stopped 停止的 1 zombie 僵死的進程數
Cpu(s): 6.1%us, 占用cpu百分比 sy 內核空間占用CPU百分比 ni 用戶進程空間內改變過優先級的進程占用CPU百分比
id 空閑CPU百分比 wa 等待輸入輸出的CPU時間百分比
最後兩行為內存信息。
內容如下:
Mem: 1 total 物理內存總量 used 使用的物理內存總量 free 空閑內存總量 buffers 用作內核緩存的內存量
Swap: total 交換區總量 used 使用的交換區總量 free 空閑交換區總量 cached 緩沖的交換區總量。
top 命令 參數
d : 改變顯示的更新速度,或是在交談式指令列( interactive command)按 s
q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的權限,則 top 將會以最高的優先序執行
c : 切換顯示模式,共有兩種模式,一是只顯示執行檔的名稱,另一種是顯示完整的路徑與名稱S : 累積模式,會將己完成或消失的子行程 ( dead child process ) 的 CPU time 累積起來
s : 安全模式,將交談式指令取消, 避免潛在的危機
i : 不顯示任何閑置 (idle) 或無用 (zombie) 的行程
n : 更新的次數,完成後將會退出 top
b : 批次檔模式,搭配 “n” 參數一起使用,可以用來將 top 的結果輸出到檔案內
3 pgrep 命令 可以根據指定的進程名, 運行該進程的用戶,進程所在終端等多種屬性查詢特定進程的PID號
pgrep -l mysqld
32597 mysqld_safe
32647 mysqld
pgrep -l -U 查看用戶 運行進程的PID號
4 pstree 查看進程數
不帶任何參數時 可以顯示系統中所有用戶的進程數結構
[root@www ~]# pstree
init─┬─acpid
├─atd
├─auditd─┬─audispd───{audispd}
│ └─{auditd}
├─automount───4[{automount}]
├─avahi-daemon───avahi-daemon
├─bonobo-activati───{bonobo-activati}
├─bt-applet
├─clock-applet
├─crond
├─cupsd
├─2[dbus-daemon]
├─dbus-launch
├─eggcups
├─escd───{escd}
├─events/0
├─gam_server
├─gconfd-2
├─gnome-keyring-d
pstree aux 將列出進程的PID 用戶名 以及命令 信息
[root@www ~]# pstree -aup
init,1
├─acpid,3198
├─atd,3544
├─auditd,2467
│ ├─audispd,2469
│ │ └─{audispd},2480
│ └─{auditd},2468
├─automount,3296
│ ├─{automount},3297
│ ├─{automount},3298
│ ├─{automount},3301
│ └─{automount},3304
├─avahi-daemon,3575,avahi
│ └─avahi-daemon,3576
├─gnome-terminal,1884
│ ├─bash,1949
│ ├─bash,2241
│ │ └─su,4076 fjc
│ │ └─bash,4077,fjc
│ │ └─vim,4097 1.php
│ ├─bash,2295
│ │ └─pstree,4366 -aup
│ ├─bash,2494
│ ├─gnome-pty-helpe,1914
│ └─{gnome-terminal},1916
├─gnome-vfs-daemo,3980
├─gpm,3465 -m /dev/input/mice -t exps2
├─hald,3217,haldaemon
│ └─hald-runner,3218,root
│ ├─hald-addon-acpi,3225,haldaemon
│ ├─hald-addon-keyb,3233,haldaemon
│ └─hald-addon-stor,3242
├─hcid,3109
├─hidd,3267 –server
├─hpiod,3318
├─httpd,2087
│ ├─httpd,2119,apache
│ ├─httpd,2120,apache
│ ├─httpd,2121,apache
│ ├─httpd,2122,apache
│ ├─httpd,2123,apache
│ ├─httpd,2124,apache
│ ├─httpd,2125,apache
│ ├─httpd,2126,apache
│ ├─rotatelogs,2115 /home/xiaowang/logs/%Y%m%d%H.error_log 720048
│ ├─rotatelogs,2116 /home/xiaoli/logs/%Y%m%d%H.error_log 7200 480
│ ├─rotatelogs,2117 /home/xiaowang/logs/%Y%m%d%H.access_log 72004
│ └─rotatelogs,2118 /home/xiaoli/logs/%Y%m%d%H.access_log 7200480
查看某個用戶使用的進程數結構信息
pstree -ap fjc
bash,4077
└─vim,4097 1.php
還有許多參數的都可以在man 中一一的查看到
如何查看linux下進程狀態