我有一个运行在远程服务器上的脚本,如果由于任何原因,脚本崩溃了,我希望得到它已经崩溃的通知,我希望它自动重新启动。 对我来说,错误是什么并不是太重要,只要它被快速重启,然而,知道错误将是一个加分。
编辑:
我把标题从“什么是最好的方式”改成了“什么是一种方式”,使它不那么以意见为基础。
一种办法可以是:
在脚本中追加以下行:
# write the pid of the current process in a pid file
echo $$ >/tmp/script_pid
之后,您可以使用ps
或pgrep
编辑您的crontab,检查进程(在我的例子中是脚本bash_pid.sh
)是否正在运行,如果没有,则重新启动它。
或多或少是这样的:
if pgrep -F /tmp/script_pid;then echo "process is running"; else . <ABSOLUTE_PATH>/bash_pid.sh;fi