我想知道是否有任何简单的脚本来自动重新启动屏蔽的后台进程。
进程被终止,但无法创建成功的进程:(。
提前感谢!

最佳答案

我认为最安全(但不是最简单)的方法是创建一个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是否每分钟运行两次(必要时重新启动)。

07-24 12:37