shell脚本 实现Linux进程数量信息

脚本如下:

[root@localhost shell]# vim linuxprocess.sh 
#!/bin/bash
running=0     -----用于统计正在运行的程序
sleeping=0     -----用于统计正在睡眠的进程,但可被唤醒
stoped=0        -----用于统计停止的程序
zombie=0        ------用于统计僵尸程序,进程已经终止但无法被删除至内存外 
for pid in /proc/[1-9]*        -----循环在proc目录下当前计算机正在运行的进程的进程PID,在该文件下是以数字开头的
do
    procs=$[procs+1]        ----统计进程的数量
    stat=$(awk '{print $3}' $pid/stat)      ----过滤在每个pid下的stat文件,第三行是代表进程的状态的
    case $stat in                      -------用case语句循环的统计进程的状态
    R)
    running=$(running+1);;
    T)
        stoped=$[stoped+1];;
    S)
    sleeping=$[sleeping+1];;
    Z)
    zombie=$[(zombie+1)];;
     esac
done
echo "进程统计信息"
echo "总进程数量为:$procs"
echo "Running 进程数为:$running"
echo "Stoped进程数为:$stoped"
echo "Slepping进程数为:$sleeping"
echo "Zombie进程数为:$zombie"

脚本的运行结果展示:

[root@localhost shell]# sh linuxprocess.sh 
进程统计信息
总进程数量为:116
Running 进程数为:0
Stoped进程数为:0
Slepping进程数为:116
Zombie进程数为:0
 

猜你喜欢

转载自blog.csdn.net/zhydream77/article/details/81153314