Linux操作系統(tǒng)的進(jìn)程管理詳解
Linux操作系統(tǒng)的進(jìn)程管理詳解
Linux操作系統(tǒng)中進(jìn)程的管理是很重要的一部分,下面由學(xué)習(xí)啦小編為大家整理了Linux操作系統(tǒng)的進(jìn)程管理詳解的相關(guān)知識(shí),希望對(duì)大家有幫助!
Linux操作系統(tǒng)的進(jìn)程管理詳解
對(duì)于Linux的進(jìn)程的管理,是通過進(jìn)程管理工具實(shí)現(xiàn)的,比如ps、kill、pgrep等工具;
Linux操作系統(tǒng)的進(jìn)程管理/1、 ps 監(jiān)視進(jìn)程工具;
ps 為我們提供了進(jìn)程的一次性的查看,它所提供的查看結(jié)果并不動(dòng)態(tài)連續(xù)的;如果想對(duì)進(jìn)程時(shí)間監(jiān)控,應(yīng)該用top工具;
1.ps 的參數(shù)說明;
ps 提供了很多的選項(xiàng)參數(shù),常用的有以下幾個(gè);
l 長格式輸出;
u 按用戶名和啟動(dòng)時(shí)間的順序來顯示進(jìn)程;
j 用任務(wù)格式來顯示進(jìn)程;
f 用樹形格式來顯示進(jìn)程;
a 顯示所有用戶的所有進(jìn)程(包括其它用戶);
x 顯示無控制終端的進(jìn)程;
r 顯示運(yùn)行中的進(jìn)程;
ww 避免詳細(xì)參數(shù)被截?cái)?
我們常用的選項(xiàng)是組合是aux 或lax,還有參數(shù)f的應(yīng)用;
ps aux 或lax輸出的解釋;
USER 進(jìn)程的屬主;
PID 進(jìn)程的ID;
PPID 父進(jìn)程;
%CPU 進(jìn)程占用的CPU百分比;
%MEM 占用內(nèi)存的百分比;
NI 進(jìn)程的NICE值,數(shù)值大,表示較少占用CPU時(shí)間;
VSZ 進(jìn)程虛擬大小;
RSS 駐留中頁的數(shù)量;
WCHAN
TTY 終端ID
STAT 進(jìn)程狀態(tài)
D Uninterruptible sleep (usually IO)
R 正在運(yùn)行可中在隊(duì)列中可過行的;
S 處于休眠狀態(tài);
T 停止或被追蹤;
W 進(jìn)入內(nèi)存交換(從內(nèi)核2.6開始無效);
X 死掉的進(jìn)程(從來沒見過);
Z 僵尸進(jìn)程;
< 優(yōu)先級(jí)高的進(jìn)程
N 優(yōu)先級(jí)較低的進(jìn)程
L 有些頁被鎖進(jìn)內(nèi)存;
s 進(jìn)程的領(lǐng)導(dǎo)者(在它之下有子進(jìn)程);
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+ 位于后臺(tái)的進(jìn)程組;
WCHAN 正在等待的進(jìn)程資源;
START 啟動(dòng)進(jìn)程的時(shí)間;
TIME 進(jìn)程消耗CPU的時(shí)間;
COMMAND 命令的名稱和參數(shù);
2. ps 應(yīng)用舉例;
實(shí)例一:ps aux 最常用
[root@localhost ~]# ps -aux |more
可以用 | 管道和 more 連接起來分頁查看;
[root@localhost ~]# ps -aux > ps001.txt
[root@localhost ~]# more ps001.txt
這里是把所有進(jìn)程顯示出來,并輸出到ps001.txt文件,然后再通過more 來分頁查看;
實(shí)例二:和grep 結(jié)合,提取指定程序的進(jìn)程;
[root@localhost ~]# ps aux |grep httpd
root 4187 0.0 1.3 24236 10272 ? Ss 11:55 0:00 /usr/sbin/httpd
apache 4189 0.0 0.6 24368 4940 ? S 11:55 0:00 /usr/sbin/httpd
apache 4190 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4191 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4192 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4193 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4194 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4195 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4196 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
root 4480 0.0 0.0 5160 708 pts/3 R+ 12:20 0:00 grep httpd
實(shí)例二:父進(jìn)和子進(jìn)程的關(guān)系友好判斷的例子
[root@localhost ~]# ps auxf |grep httpd
root 4484 0.0 0.0 5160 704 pts/3 S+ 12:21 0:00 _ grep httpd
root 4187 0.0 1.3 24236 10272 ? Ss 11:55 0:00 /usr/sbin/httpd
apache 4189 0.0 0.6 24368 4940 ? S 11:55 0:00 _ /usr/sbin/httpd
apache 4190 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd
apache 4191 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd
apache 4192 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd
apache 4193 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd
apache 4194 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd
apache 4195 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd
apache 4196 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd
這里用到了f參數(shù);父與子關(guān)系一目了然;
Linux操作系統(tǒng)的進(jìn)程管理:2、pgrep查詢進(jìn)程工具
pgrep 是通過程序的名字來查詢進(jìn)程的工具,一般是用來判斷程序是否正在運(yùn)行。在服務(wù)器的配置和管理中,這個(gè)工具常被應(yīng)用,簡單明了;
用法:
#pgrep 參數(shù)選項(xiàng) 程序名
常用參數(shù)
-l 列出程序名和進(jìn)程ID;
-o 進(jìn)程起始的ID;
-n 進(jìn)程終止的ID;
舉例:
[root@localhost ~]# pgrep -lo httpd
4557 httpd
[root@localhost ~]# pgrep -ln httpd
4566 httpd
[root@localhost ~]# pgrep -l httpd
4557 httpd
4560 httpd
4561 httpd
4562 httpd
4563 httpd
4564 httpd
4565 httpd
4566 httpd
[root@localhost ~]# pgrep httpd
4557
4560
4561
4562
4563
4564
4565
4566