Shell代码
#!/bin/sh PID=`sed -n 1p pidfile` cmd=`ps -e|grep $PID` #get process with the given pid indx=`expr index "$cmd" "java"` #whether the string 'cmd' contains 'java' if [ "$indx" = "0" ]; then /...path of ctrl.sh.../ctrl.sh restart fi #!/bin/sh PID=`sed -n 1p pidfile` cmd=`ps -e|grep $PID` #get process with the given pid indx=`expr index "$cmd" "java"` #whether the string 'cmd' contains 'java' if [ "$indx" = "0" ]; then /...path of ctrl.sh.../ctrl.sh restart fi最后在crontab中每分钟执行上面的crntb.sh
Shell代码
crontab -e crontab -e
Shell代码
0-59 * * * * * /....path of crntb.sh.../crntb.sh 0-59 * * * * * /....path of crntb.sh.../crntb.sh这样就可以每分钟查看当前pid对应的进程是不是还在,如果不在了,就重新启动。
当然,光用这几小段代码是不足以维护一个完整的商用程序的。但是,做到了这点,最起码万里长征的第一步已经迈出去了。