多语言展示
当前在线:701今日阅读:57今日分享:41

linux如何让一个程序崩溃后自动重启

在linux上运行的应用程序如果发生崩溃,就不能继续提供服务,需要重新启动应用。这个一般需要人工手动启动,下面就介绍一种简单的自动重启应用的方法
工具/原料
1

linux

2

xshell

方法/步骤
1

编写一个shell脚本,轮询监控应用的进程,如果出现崩溃进程不在的情况下,自动启动应用程序touch restart.sh(新建一个重启脚本)

2

chmod 777 restart.sh (赋予权限,默认-rw-rw-r--没有可执行权限,不赋予权限脚本运行不了)执行玩chmod之后,权限已经改变-rwxrwxrwx

3

vi restart.sh(编辑文件)循环每隔10秒查看下应用程序进程是否存在,不存在则启动应用,存在则睡眠10秒继续检测#!/bin/shwhile truedo ps -ef | grep "填入你自己的程序名" | grep -v "grep" if [ "$?" -eq 1 ] then ./run.sh #启动应用,修改成自己的启动应用脚本或命令 echo "process has been restarted!" else echo "process already started!" fi sleep 10done

4

./restart.sh (启动脚本),启动完成之后,则可以看到每隔10秒打印一次“process already started!”,这个表示应用程序在运行不需要重启

5

为了演示程序崩溃的情况,手动杀掉应用程序的进程

6

杀完进程之后,再看刚刚启动的监控脚本打印日志情况,从图中可以看到,“process has been restarted!”,表示已经重启应用成功了。不确定的还可以自己去看下应用程序是否在运行

注意事项

上面演示的是直接启动脚本,在退出会话的时候会停止,要使用nohup的方式启动监控脚本

推荐信息