试验demo:
统计proc目录下Linux进程相关的数量信息,最后输出总进程数、running进程数、stopped进程数以及zombie进程数。
#!/bin/bash
ALL_PROCESS=$(ls /proc/ | egrep '[0-9]+')
running_count=0
stopped_count=0
sleeping_count=0
zombie_count=0
for pid in ${ALL_PROCESS[*]}
do
test -f /proc/$pid/status && state=$(egrep "State" /proc/$pid/status | awk '{print $2}')
case "$state" in
R)
running_count=$((running_count+1))
;;
T)
stopped_count=$((stopped_count+1))
;;
S)
sleeping_count=$((sleeping_count+1))
;;
Z)
zombie_count=$((zombie_count+1))
;;
esac
done
echo -e "total:$((running_count+stopped_count+sleeping_count+zombie_count))\nrunning:$running_count\nstopped:$stopped_count\nsleeping:$sleeping_count\nzombie:$zombie_count"
执行结果: