my11502207 发表于 2018-8-21 06:27:55

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]
查看完整版本: shell脚本之测试进程状态