Shell脚本检测程序,如果挂了就重启程序

脚本如下:

#!/bin/sh

#要检查的进程名
PROGRESS_NAME="heihu_server"

#-----------------------------------
# 函数: CheckProgress# 功能: 检查一个进程是否存在
# 参数: $1 --- 要检查的进程名称# 返回: 如果存在返回0, 否则返回1.
#---------------------------------------
CheckProgress(){
# 检查输入的参数是否有效
    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
    CheckProgress "$PROGRESS_NAME"
    RET=$?
    if [ $RET -eq 1 ];
    then
        echo "The progress:$PROGRESS_NAME is dead, I will start it right now!"
        #killall -9 $PROGRESS_NAME
        exec ./$PROGRESS_NAME &
    fi
    sleep 1
    echo "sleep.."
done
 
时间: 2024-11-08 16:53:38

Shell脚本检测程序,如果挂了就重启程序的相关文章

Shell脚本实现每个工作日定时执行指定程序

我们可能会遇到这样的情景:必须在每个工作日定时执行Linux服务器上的某个程序.那么有没有办法实现这一功能呢?答案是肯定的.我们可以运用Shell脚本简单实现这一功能. 原理很简单,Shell脚本内部每隔1秒查询一次当前时间.日期以及星期数,当检测到当前星期数week非0或6(0代表星期天,6代表星期六)且时间curTime大于指定时间startTime时,执行指定的程序program.为了保证每天仅执行一次指定程序program,还引用了变量isFirstTime做标记.具体代码如下: 1 #

linux用于后台监控指定程序运行状况的脚本(如果程序死了则重启程序)

#!/bin/sh while true do ps | grep "main_3g" | grep -v "grep" > /dev/null if [ "$?" -ne 0 ] then ls /root/main_3g > /dev/null if [ "$?" -eq 0 ] then chmod 777 /root/main_3g /root/main_3g & echo "main_3

WyBox使用shell脚本检测io口是否正常

1. 修改mt7620a.dts文件,把gpio管脚复用全都定义为通用gpio /dts-v1/; /include/ "mt7620a.dtsi" / { compatible = "ralink,mt7620a-eval-board", "ralink,mt7620a-soc"; model = "Ralink MT7620a + MT7610e evaluation board"; [email protected]10

linux shell脚本检测硬盘磁盘空间 邮件报警

使用 http://www.weiruoyu.cn/?p=368 shell脚本监控硬盘空间剩余空间 邮件报警 1.先观察一下磁盘,和如何使用脚本 [[email protected] ~]# df -h 文件系统              容量  已用 可用 已用% 挂载点 /dev/mapper/VolGroup00-LogVol00 8.9G  2.6G  5.9G  31% / /dev/sda1              99M   13M   82M  13% /boot tmpfs

shell脚本检测监控mysql的CPU占用率

网站访问量大的时候mysql的压力就比较大,当mysql的CPU利用率超过300%的时候就不能提供服务了,近乎卡死状态,这时候最好的方法 就是重启mysql服务.由于这种事具有不可预见性,我们不知道什么时候mysql的占用率达到300%,还是写个程序定期判断比较靠谱. 学了shell编程,写了下面的脚本: #!/bin/bash cpu=`ps aux | grep 'mysqld$' | cut -d " " -f6 | cut -d. -f1` if [ $cpu -gt 300

shell脚本检测网络是否畅通

shell初始化安装脚本执行时,需从网络上安装一些rpm包,所有需要先检测网络的畅通性, 代码 #检测网络链接&&ftp上传数据 function networkAndFtp() { #超时时间 timeout=5 #目标网站 target=www.baidu.com #获取响应状态码 ret_code=`curl -I -s --connect-timeout $timeout $target -w %{http_code} | tail -n1` if [ "x$ret_co

使用shell脚本检测lvs中realserver状态,并实现自动删除已挂机主机

#!/bin/sh # Describe:check the real server status # History:2015-08-25 22:21:38 # Author:Tim PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH VIP=192.168.1.121 DIP=192.168.1.112 RIP=("192.168.1.122" "192.1

Shell脚本检查memcache进程并自动重启

修正版: #!/bin/sh #check memcache process and restart if down mm_bin="/usr/local/bin/memcached" mm_log="/home/xxx/memcached_check.log" mm_ports=("11211" "11212") mm_param=("-d -m 20480 -p 11211 -u www" "

shell脚本 检测根分区硬盘空间使用率

#!/bin/bash IP=$(ifconfig eth0 |grep "inet addr"| awk '{print $2}' |cut -f1 -d":")  a=$(df -h |grep /dev/sda2 |awk '{print $5}'|cut -f1 -b"%" )    #截取分区使用率 if [ $a -ge 80 ]     then         echo "$IP 服务器根分区即将没有空间,请及时清理.&