我有这个 .sh 脚本,我想将其作为 cron 作业每天执行一次。它会检查特定进程 (qbittools) 是否仍在运行,如果没有,则再次启动它。这有效,但是除非 qbittools 进程终止,否则 cron 作业永远不会退出。这会随着时间的推移创建一个 cron 作业队列。
有没有办法执行 else 语句,并在几秒钟后退出 cron 作业,而不管其是否执行?
qbittools 永远不应该结束。这纯粹是为了在它死机时重新启动它。
#!/bin/bash
if pgrep -x "qbittools" > /dev/null
then
echo "Running"
else
qbittools reannounce -s 192.168.1.77:10095 -U xxxx -P xxxx &
fi
exit 0
答案1
我认为它现在可以起作用了,我只是缺少一个放弃,见下文:
#!/bin/bash
if pgrep -x "qbittools" > /dev/null
then
echo "Running"
else
qbittools reannounce -s 192.168.1.77:10095 -U xxxx -P xxxx &>/dev/null & disown
fi
exit 0