我编写了一个简单的脚本来检查 deluge 守护进程是否正在运行,如果没有,则重新启动它:
#!/bin/bash
if [[ $(pidof deluged | wc -1) -eq 0 ]]; then
deluged
fi
我将它添加到 cron 上的计划作业中,使其每 5 分钟运行一次......一切正常;如果我杀死 deluge 守护进程(deluged
),我的脚本就会正确地重新启动它。
我的问题是:
我正在使用 deluge 下载种子,但有时它会失去与本地主机 (127.0.0.1) 的连接,因此我必须定期检查它是否仍在运行。我该如何改进上述代码以自动重新连接到主机?
答案1
你可以让这变得简单得多。
pidof deluged || deluged
对于第二个问题,如果它记录了一条消息,您可能可以在其中读到它?
答案2
与其不断地重启服务,不如寻找崩溃的根本原因并修复它。
您是否碰巧在基于 ARM 的设备(如 raspberry pi)上运行 deluge?快速谷歌搜索显示,这些崩溃在该设置中相当常见。
本博客有一个你可以尝试的解决方法。