防止AU跟db挂死的方法
linux下自动检测并重新启动一个死掉的进程,然后再把它杀死:)(shell脚本实现) . /etc/profile.d #如果要把这个shell脚本放到crontab中,这句不能少,用来初始化程序环境变量,这是root用户的环境变量文件
杀死进程(可能有多个,暂不考虑)
PNAME="程序名字" #引号不能少,因为程序名字后面可能会有空格和参数 PATHNAME=程序所在文件夹绝对路径 PID=`ps -ef|grep "$PNAME"|grep -v "grep"|awk {print $2}` 或者 PID=`ps -ef|grep "$PNAME"|grep -v "grep"|cut -b 10-15`#引号不能少,同上 LENGTH=echo $PID|wc -c if test $length -ne 0 then kill -9 $PID fi
PNAME="程序名字" #引号不能少,因为程序名字后面可能会有空格和参数 PATHNAME=程序所在文件夹绝对路径 LENGTH=`ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c ` #引号不能少,同上 if test $LENGTH -eq 0 then cd $PATHNAME nohup $PNAME >/dev/null & fi
备注:
-eq 等于 -z 空串(if [ -z $filename2_size ] || [ -z $filename1_size ] || [ -z $filename0_size ]; then echo no such files ) -ne 不等于 = 两个字符相等 -gt 大于 != 两个字符不等 -lt 小于 -n 非空串 -le 小于等于 -ge 大于等于
命令1 && 命令2
&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行; 换句话说,“如果这个命令执行成功&&那么执行这个命令”。 命令1 || 命令2
如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2); 或者换句话说,“如果这个命令执行失败了|| 那么就执行这个命令”
路径=/etc/crontab
示范如下: SHELL=/etc/profile.d PNAME="authd" PATHNAME=/root/cauthd/build/ LENGTH=`ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c ` if test $LENGTH -eq 0 then cd $PATHNAME nohup $PNAME >/dev/null & fi
# run-parts 01 * * * * root run-parts /root/cauthd/build #每小时执行的目录
SHELL=. /etc/profile PNAME="authd" PATHNAME=/root/cauthd/build/ PID=`ps -ef|grep "$PNAME"|grep -v "grep"|awk {print $2}` PID=`ps -ef|grep "$PNAME"|grep -v "grep"|cut -b 10-15` LENGTH=echo $PID|wc -c if test $length -ne 0 then kill -9 $PID fi
# run-parts 01 * * * * root run-parts /root/cauthd/build #每小时执行的目录
=================================================================== 如果使用crontab编辑计划任务或直接修改/etc/crontab文件后,计划任务没有生效,可能需要重启一下crond服务:service crond restart
crontab 启动 依赖 crontabs包和 crond服务, crond服务使用的crontab定义的命令
因此需要: service crond start 或者 /etc/rc.d/init.d/crond start
加入开机自动启动: chkconfig --level 35 crond on
这样的话,你就可以放心睡觉了,不用担心au和db了,嘿嘿!!!正在研究试验中(单机挂机第二天中,暂时无报错)。。大家可以先按我说的去试试,格式不一定全对!自己试下,注意备份哦!!!:
加入开机自动启动: chkconfig --level 35 crond on
crontab重启 依赖 crontabs包和 crond服务 因此 crontab 重启需要: service crond restart 或者 /etc/rc.d/init.d/crond restart
|