https://jingyan.baidu.com/article/39810a23a124dfb636fda612.html
编写一个shell脚本,轮询监控应用的进程,如果出现崩溃进程不在的情况下,自动启动应用程序
touch restart.sh(新建一个重启脚本)
linux如何让一个程序崩溃后自动重启
chmod 777 restart.sh (赋予权限,默认-rw-rw-r–没有可执行权限,不赋予权限脚本运行不了)
执行玩chmod之后,权限已经改变-rwxrwxrwx
linux如何让一个程序崩溃后自动重启
vi restart.sh(编辑文件)
循环每隔10秒查看下应用程序进程是否存在,不存在则启动应用,存在则睡眠10秒继续检测
#!/bin/sh
while true
do
ps -ef | grep “填入你自己的程序名” | grep -v “grep”
if [ “$?” -eq 1 ]
then
./run.sh #启动应用,修改成自己的启动应用脚本或命令
echo “process has been restarted!”
else
echo “process already started!”
fi
sleep 10
done
linux如何让一个程序崩溃后自动重启
./restart.sh (启动脚本),启动完成之后,则可以看到每隔10秒打印一次“process already started!”,这个表示应用程序在运行不需要重启
linux如何让一个程序崩溃后自动重启
为了演示程序崩溃的情况,手动杀掉应用程序的进程
linux如何让一个程序崩溃后自动重启
杀完进程之后,再看刚刚启动的监控脚本打印日志情况,从图中可以看到,“process has been restarted!”,表示已经重启应用成功了。不确定的还可以自己去看下应用程序是否在运行
linux如何让一个程序崩溃后自动重启步骤阅读
END
注意事项
上面演示的是直接启动脚本,在退出会话的时候会停止,要使用nohup的方式启动监控脚本