linux - 如果死了,Cronjob 会检查并重新启动服务

标签 linux bash centos cron

我想要一个可以检查和重启服务的 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/

相关文章:

linux - 我被要求输入 ubuntu 用户的密码而不是 vagrant(我在 GUI 中登录的用户)

linux - 在 Linux 中使用 sed 替换字符串

bash - 搜索匹配项,然后用上一行的值替换此匹配项后的值

bash - 在 Redhat 中升级 rsync 的问题

c - seccomp:从 parent 那里,找到哪个系统调用导致 child 在 SIGSYS 上死亡

linux - 在 Linux 中调试共享库

linux - Bash 脚本中的多个 SSH 命令

linux - 尝试在centos8上使用kickstart文件安装VM时不断收到内核错误

php - 无法登录 phpmyadmin

linux - 平台驱动有什么用?