怎么用命令查看Linux系統(tǒng)進(jìn)程狀態(tài)
Linux下我們想要查看進(jìn)程狀態(tài)觀察哪些進(jìn)程占用高,或者沒(méi)用的進(jìn)程占用資源等情況,可以用命令實(shí)現(xiàn),具體怎么操作呢。下面由學(xué)習(xí)啦小編為大家整理了查看Linux系統(tǒng)進(jìn)程狀態(tài)的命令詳解,希望對(duì)大家有幫助!
查看Linux系統(tǒng)進(jìn)程狀態(tài)的命令詳解
1. ps 簡(jiǎn)介
ps 命令就是最根本相應(yīng)情況下也是相當(dāng)強(qiáng)大地進(jìn)程查看命令.運(yùn)用該命令可以確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行地狀態(tài)、 進(jìn)程 是否結(jié)束、進(jìn)程有沒(méi)有僵死、哪些進(jìn)程占用了過(guò)多地資源等等.總之大部分信息均為可以通過(guò)執(zhí)行該命令得到地.
2. ps 命令及其參數(shù)
ps 命令最經(jīng)常使用地還是用于監(jiān)控后臺(tái)進(jìn)程地工作情況,因?yàn)楹笈_(tái)進(jìn)程是不和屏幕鍵盤這些標(biāo)準(zhǔn)輸入/輸出設(shè)
備進(jìn)行通信地,所以如果需要檢測(cè)其情況,便可以運(yùn)用 ps 命令了.
該命令語(yǔ)法格式如下:
ps [選項(xiàng)]
-e 顯示所有進(jìn)程,環(huán)境變量
-f 全格式
-h 不顯示標(biāo)題
-l 長(zhǎng)格式
-w 寬輸出
a 顯示終端上地所有進(jìn)程,包括其他用戶地進(jìn)程
r 只顯示正在運(yùn)行地進(jìn)程
x 顯示沒(méi)有控制終端地進(jìn)程
O[+|-] k1 [,[+|-] k2 [,…]] 根據(jù) SHORT KEYS、k1、k2 中快捷鍵指定地多級(jí)排序順序顯示進(jìn)程列表.
對(duì)于 ps 地不同格式都存在著默認(rèn)地順序指定.這些默認(rèn)順序可以被用戶地指定所覆蓋.在這里面“+”字符是可選地,“-” 字符是倒轉(zhuǎn)指定鍵地方向.
pids 只列出進(jìn)程標(biāo)識(shí)符,之間運(yùn)用逗號(hào)分隔.該進(jìn)程列表必須在命令行參數(shù)地最后一個(gè)選項(xiàng)后面緊接著給出,中間不能插入 空格.比如:ps -f1,4,5.
以下介紹長(zhǎng)命令行選項(xiàng),這些選項(xiàng)都運(yùn)用“--”開(kāi)頭:
--sort X[+|-] key [,[+|-] key [,…]] 從 SORT KEYS 段中選一個(gè)多字母鍵.“+”字符是可選地,因?yàn)槟J(rèn)地方向就是按 數(shù)字升序或者詞典順序.比如: ps -jax -sort=uid,-ppid,+pid.
--help 顯示幫助信息.
--version 顯示該命令地版本信息.
在前面地選項(xiàng)說(shuō)明中提到了排序鍵,接下來(lái)對(duì)排序鍵作進(jìn)一步說(shuō)明.需要注意地是排序中運(yùn)用地值是 ps 運(yùn)用地內(nèi)部值,并非 僅用于某些輸出格式地偽值。
查看Linux系統(tǒng)的進(jìn)程狀態(tài)的命令實(shí)例
實(shí)例1:顯示所有進(jìn)程信息
命令:ps -A
輸出:
復(fù)制代碼代碼如下:
[root@localhost test6]# ps -A
PID TTY TIME CMD
1 ? 00:00:00 init
2 ? 00:00:01 migration/0
3 ? 00:00:00 ksoftirqd/0
4 ? 00:00:01 migration/1
5 ? 00:00:00 ksoftirqd/1
6 ? 00:29:57 events/0
7 ? 00:00:00 events/1
8 ? 00:00:00 khelper
49 ? 00:00:00 kthread
54 ? 00:00:00 kblockd/0
55 ? 00:00:00 kblockd/1
56 ? 00:00:00 kacpid
217 ? 00:00:00 cqueue/0
實(shí)例2:顯示指定用戶信息
命令:ps -u root
輸出:
復(fù)制代碼代碼如下:
[root@localhost test6]# ps -u root
PID TTY TIME CMD
1 ? 00:00:00 init
2 ? 00:00:01 migration/0
3 ? 00:00:00 ksoftirqd/0
4 ? 00:00:01 migration/1
5 ? 00:00:00 ksoftirqd/1
6 ? 00:29:57 events/0
7 ? 00:00:00 events/1
8 ? 00:00:00 khelper
49 ? 00:00:00 kthread
54 ? 00:00:00 kblockd/0
55 ? 00:00:00 kblockd/1
56 ? 00:00:00 kacpid
實(shí)例3:顯示所有進(jìn)程信息,連同命令行
命令:ps -ef
輸出:
復(fù)制代碼代碼如下:
[root@localhost test6]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Nov02 ? 00:00:00 init [3]
root 2 1 0 Nov02 ? 00:00:01 [migration/0]
root 3 1 0 Nov02 ? 00:00:00 [ksoftirqd/0]
root 4 1 0 Nov02 ? 00:00:01 [migration/1]
root 5 1 0 Nov02 ? 00:00:00 [ksoftirqd/1]
root 6 1 0 Nov02 ? 00:29:57 [events/0]
root 7 1 0 Nov02 ? 00:00:00 [events/1]
root 8 1 0 Nov02 ? 00:00:00 [khelper]
root 49 1 0 Nov02 ? 00:00:00 [kthread]
root 54 49 0 Nov02 ? 00:00:00 [kblockd/0]
root 55 49 0 Nov02 ? 00:00:00 [kblockd/1]
root 56 49 0 Nov02 ? 00:00:00 [kacpid]
實(shí)例4: ps 與grep 常用組合用法,查找特定進(jìn)程
命令:ps -ef|grep ssh
輸出:
復(fù)制代碼代碼如下:
[root@localhost test6]# ps -ef|grep ssh
root 2720 1 0 Nov02 ? 00:00:00 /usr/sbin/sshd
root 17394 2720 0 14:58 ? 00:00:00 sshd: root@pts/0
root 17465 17398 0 15:57 pts/0 00:00:00 grep ssh
補(bǔ)充:Linux系統(tǒng)殺死進(jìn)程的命令
使用kill命令結(jié)束進(jìn)程:kill xxx
常用:kill -9 324
Linux下還提供了一個(gè)killall命令,可以直接使用進(jìn)程的名字而不是進(jìn)程標(biāo)識(shí)號(hào),例如:# killall -9 NAME