我想知道是否有任何简单的脚本来自动重新启动屏蔽的后台进程。
进程被终止,但无法创建成功的进程:(。
提前感谢!
最佳答案
我认为最安全(但不是最简单)的方法是创建一个cron
作业来检查进程是否正在运行,如果没有,请重新启动它。这种方法之所以“更安全”,是因为如果使用类似于ivanivan
建议的循环,并且脚本“崩溃”,程序将不会再次重新启动;另一方面,通过cron
执行,检查程序将每分钟调用一次。
例如,您的cron
可能是:
* * * * * env DISPLAY=:0 /folder/testscript >/dev/null 2>&1
env DISPLAY=:0
在您的案例中可能不需要,或者可能需要,这取决于您的脚本(注意:您可能需要根据您的案例调整此选项,运行echo $DISPLAY
以找出案例中的变量)。例如,您的
testscript
可能是:#!/bin/bash
testvar="$(ps aux | grep -s "mainscript" | grep -sv "grep -s mainscript")"
if [ -z "$testvar" ]; then nohup /folder/mainscript &; fi
#sleep and run second test
sleep 30
testvar="$(ps aux | grep -s "mainscript" | grep -sv "grep -s mainscript")"
if [ -z "$testvar" ]; then nohup /folder/mainscript &; fi
exit 0
在上面的例子中,
testscript
将检查mainscript
是否每分钟运行两次(必要时重新启动)。