我想要一个可以检查和重启服务的 1 liner,例如 Apache,如果它们不活动/死了。
我想把它放在crontab里,每分钟运行一次,确保服务还在运行。
最佳答案
很抱歉唤醒了一个休眠的线程,但由于许多答案不再有效,我在查看时找到了这个页面,我想我应该在这里添加我的解决方案:
创建脚本 check_service.sh
并根据需要设置 SERVICENAME
:
#!/bin/bash
SERVICENAME="WHATEVER_SERVICE_YOU_WANT"
systemctl is-active --quiet $SERVICENAME
STATUS=$? # return value is 0 if running
if [[ "$STATUS" -ne "0" ]]; then
echo "Service '$SERVICENAME' is not curently running... Starting now..."
service $SERVICENAME start
fi
使脚本可执行:
chmod +x check_service.sh
最后,通过运行 sudo crontab -e
将脚本添加到 Root 的 crontab:
# min hour day month dow cmd
*/1 * * * * /full/path/to/check_service.sh
保存crontab,耐心等待!
关于linux - 如果死了,Cronjob 会检查并重新启动服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34931846/