linux下通过脚本监控程序运行

转载自:http://blog.csdn.net/shanzhizi/article/details/10180183

shanzhizi大神的,写的很实用,谢谢大神。

应用程序运行过程中,任何人都无法保证它永远不死定,因此自动重启就十分必要。以下是自动重启的shell脚本实现方法,shell脚本来自网络。
假定需要实现重启的程序名为 test ,我们这里通过判断进程数目来判断程序是否正常。
ps -ef | grep “ 1"|grepv"grep"|wcl 1 是要监控的进程名称(本例中为 test的进程 ),这个命令将返回该进程的进程个数。脚本根据进程数来决定下一步的操作。通过一个死循环,每隔 1 秒检查一次系统中的指定程序的进程数。

代码如下:

#!/bin/sh

#------------------------------------------------------------------------------
# 函数: CheckProcess
# 功能: 检查一个进程是否存在
# 参数: $1 --- 要检查的进程名称
# 返回: 如果存在返回0, 否则返回1.
#------------------------------------------------------------------------------
CheckProcess()
{
  # 检查输入的参数是否有效
  if [ "$1" = "" ];
  then
    return 1
  fi

  #$PROCESS_NUM获取指定进程名的数目,为1返回0,表示正常,不为1返回1,表示有错误,需要重新启动
  PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l` 
  if [ $PROCESS_NUM -eq 1 ];
  then
    return 0
  else
    return 1
  fi
}

# 检查test实例是否已经存在
while [ 1 ] ; do
 CheckProcess "test"
 CheckQQ_RET=$?
 if [ $CheckQQ_RET -eq 1 ];
 then

# 杀死所有test进程,可换任意你需要执行的操作


  killall -9 test
  exec ./test &  
 fi
 sleep 1
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值