linux - Debian:在 PuTTY 中自动终止时重新启动进程

标签 linux terminal debian putty

我想知道是否有任何简单的脚本可以自动重启已屏蔽的后台进程。

该进程被杀死但无法创建一个成功的进程:(。

提前致谢! <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/

相关文章:

Linux gretap - net/ipv4/ip_gre.c - 如何设置 key->tun_flags 的值

linux - 为 ARM 架构构建 libsndfile 库

linux - Sed 从文件底部开始搜索和追加

debian - 升级到 Plone 新主要版本的首选方式是什么?

mysql - 无法在 debian 上安装 libmysql++-dev

linux - 在系统启动时执行命令的 Bash 脚本

linux - uevent 从内核发送到用户空间 (udev)

Linux/甲骨文数据库 : how to access website in same subnet using local IP address?

非规范终端 I/O 应用程序的 Linux 终端问题

sql-server - 问题 : Writing more data than expected in debian packages