Linuxで異なる運行状態のプロセス個数とプロセス名を統計する

シェル機能:Linuxの中で異なる運行状態のプロセス数と相応の具体的なプロセス
シェル用法:./cnt_zombie.sh 「am/pc」 「プロセス運行状態:Z/R/S/SS/SW/T/…」
使用サンプル:./cnt_zombie.sh arm Z; ./cnt_zobiem.sh pc R;

ファイル名:cnt_zombie.sh
#! /bin/sh

IFS_old=$IFS
IFS=$’\n’
file=”zombie.txt”
num=0
proc_name=
self=”cnt_zombie.sh”

while test true
do
if [ $1 = “arm” ]
then
list=”ps -w|grep $2|grep -v grep|grep -v $self
elif [ $1 = “pc” ]
then
list=”ps axu|grep -w $2|grep -v grep|grep -v $self
fi

if [ “x$list” != “x” ]
then
x=
#echo “list: $list”
#num=echo $list|wc -l
#echo “num: $num”
else
continue
fi

if [ $1 = “pc” ]
then
pos=ps axu|grep PID|grep -bo COMMAND|cut -d ":" -f 1
elif [ $1 = “arm” ]
then
pos=26
fi

num=0
for line in $list
do
num=$[$num+1]
if [ -n $proc_name ]
then
proc_name=”$proc_name\n\techo $line|cut -c $pos-
else
proc_name=”echo $line|cut -c $pos-
fi
done

echo -e “process conut: $num, process list:$proc_name\n” >> $file
sleep 3
done

Comments are closed.