Dans le système Linux, état de fonctionnement du processus est divisé en quatre catégories: courir, dormir, arrêté et zombies. Le script suivant comptera le système actuel, le nombre de processus une variété de conditions d'exploitation.
[ root@xieqichao ~ ] # cat test28. sh
#! / bin/ sh
#1. 初始化计数器变量,分别对应于运行时、睡眠、停止和僵尸。
running= 0
sleeping= 0
stopped= 0
zombie= 0
#2. 在/ proc目录下,包含很多以数字作为目录名的子目录,其含义为,每个数字对应于一个当前正在运行进程的pid,
该子目录下包含一些文件用于描述与该pid进程相关的信息。如1 表示init进程的pid。
那么其子目录下的stat文件将包含和该进程运行状态相关的信息。
#3. cat / proc/ 1 / stat,通过该方式可以查看init进程的运行状态,
同时也可以了解该文件的格式,其中第三个字段为进程的运行状态字段。
#4. 通过let 表达式累加各个计数器。
for pid in / proc/ [ 1 - 9 ] *
do
( ( procs= procs+ 1 ) )
stat= `awk '{print $3}' $pid/stat`
case $stat in
R ) ( ( running= runing+ 1 ) ) ; ;
S ) ( ( sleeping= sleeping+ 1 ) ) ; ;
T ) ( ( stopped= stopped+ 1 ) ) ; ;
Z ) ( ( zombie= zombie+ 1 ) ) ;
esac
done
echo - n "Process Count: "
echo - e "Running = $running\tSleeping = $sleeping\tStopped = $stopped\tZombie = $zombie."
CTRL + D
[ root@xieqichao ~ ] # . / test28. sh
Process Count: Running = 0 Sleeping = 136 Stopped = 0 Zombie = 0.