shell脚本之测试进程状态
#!/bin/bash#
#提示用户指定一个守护进程名 并将名字暂存到变量n_prog中
echo "check up progress status"
echo -n "Input a name of progress:"
read n_prog
#
#定义一些常量 定义每次发送测试结果的参数到标准输出的时间间隔
pro_file_name=status
not_connected=65
interval=2
#搜索变量n_prog中指定的守护进程的进程号
pidno=$( ps ax |grep -v "ps ax" |grep -v grep|grep $n_prog|awk '{print $1}')
#
echo "checkingfor \"$n_prog\",please wait..."
echo
#判断变量pidno的值是否为空
if [ -z "$pidno" ]
then
echo "The status be stopped..."
echo "And belong to not connected"
echo
exit $not_connected
else
echo "The status is running..."
echo "And belong to connected"
echo
fi
#
#若指定进程对应的文件存在 但进程没有处于连接状态 则执行if结构语句
while [ true ]
do
if [ ! -e "/proc/$pidno/$pro_file_name" ]
then
echo "But he progress is disconnected"
echo
exit $not_connected
fi
#获取一些连接的参数 并输出到标准输出上
netstat -s |grep "packets received"
netstat -s |grep "packets delivered"
#每隔一秒显示一个参数 相隔的时间由变量$interval定义
sleep $interval
echo
done
exit 0
页:
[1]