我想知道是否有任何简单的脚本可以自动重启已屏蔽的后台进程。
该进程被杀死但无法创建一个成功的进程:(。
提前致谢! <3
最佳答案
我相信最安全(但不是最简单)的方法是创建一个 cron
作业来检查进程是否正在运行,如果没有,则重新启动它。这种方法之所以“更安全”,是因为如果你像 ivanivan
建议的那样使用循环,并且该脚本“崩溃”,程序将不会再次重新启动;另一方面,通过cron
,每分钟都会调用检查程序。
例如,您的 cron
可能是:
* * * * * env DISPLAY=:0 /folder/testscript >/dev/null 2>&1
env DISPLAY=:0
在您的情况下可能不需要,或者可能需要,具体取决于您的脚本(注意:您可能需要根据您的情况调整它,运行 echo $DISPLAY
以找出您在案例中的变量)。
例如,您的测试脚本
可以是:
#!/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
是否正在运行(并在必要时重新启动它)。
关于linux - Debian:在 PuTTY 中自动终止时重新启动进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41146907/