回答
如果将其保存为bash脚本,它将成为您可以从cron调用的一行代码。这将重启Apache,如果它不在pgrep返回的进程列表中。
显然这假设你有pgrep。调整您的命令以相应地重启。
如果Apache运行但没有响应,那是一个不同的问题。你必须要检查一些端点响应(和正确响应)在指定的超时时间内,等
#!/bin/bash
RESTART="/etc/init.d/httpd restart"
PGREP="/usr/bin/pgrep"
HTTPD="httpd"
$PGREP ${HTTPD}
if [ $? -ne 0 ] # if apache not running
then
# restart apache
$RESTART
fi
'/ etc/init.d /'迟早会消失。 – guettli
service_ck.sh
#!/bin/bash
STATUS=$(/etc/init.d/service_name status)
# Most services will return something like "OK" if they are in fact "OK"
test "$STATUS" = "expected_value" || /etc/init.d/service_name restart
更改文件权限:
chmod +x service_ck.sh
更新您的crontab:
# min hour day month dow cmd
*/1 * * * * /path/to/service_ck.sh
'/ etc/init.d /'迟早会消失。 – guettli
这是真的,但是目前'systemd'将'init.d'映射到它的服务非常好,直到它完全替代'sysv','init.d''''''''' stop'脚本将会并且应该生存和发展。 –
@NarūnasK应该在有限的生命周期内生存并茁壮成长,直到不再支持折旧模式/路径/方法。另外,有这样的:'something.service不是本地服务,重定向到systemd-sysv-install'。从技术上讲,虽然它的熟悉和落后compat,它在现代安装混淆和碎片化 - 没有symlinked以systemd方式,不显示在正确的列表/地方等。顺便说一句,你不需要这个脚本/ cron在所有如果你使用systemd内置的自动重启能力:'Restart = always'应该可以在几乎所有的发行版上从这里开始使用。 – dhaupin
对于这种情况,您可以使用专用软件monit
。它可以检查你的守护进程,如果需要的话重启它并发送警报。另一个不错的选择 - 它可以停止尝试在N失败后重新启动服务(例如,如果服务无法启动)。
- 1. 如何检查是否安装了服务并启动服务(如果安装了其他服务,如果安装并启动Windows的厨师的服务)
- 2. 重新启动服务器后重新启动WCF服务
- 3. 如何检查服务器是否需要重新启动
- 4. Ansible并重新启动码头服务
- 5. 启动过程如果死了
- 6. Android重新启动服务
- 7. Android:Activity.onDestroy()重新启动服务
- 8. 从服务重新启动Windows服务
- 9. Docker容器中的ntpd服务已死,无法重新启动
- 10. 重新启动或杀死Scrapyd服务器
- 11. Android服务在应用程序死亡时重新启动
- 12. 重新启动的服务,在debian postinst脚本中死亡。
- 13. 模拟Android查杀并重新启动服务
- 14. Android:重新启动远程服务并重新绑定它
- 15. 如何重新启动窗口服务
- 16. 如何重新启动flask服务器?
- 17. 如何重新启动REST服务?
- 18. 如何重新启动node.js服务器
- 19. 如何重新启动Windows服务?
- 20. 如何重新启动windows服务c#
- 21. 如果NodeJS API服务失败,如何重新启动?
- 22. 重新启动服务器后无法启动SQL服务
- 23. 重新启动服务器后重新启动Docker容器
- 24. 会话将如何重新映射回服务器如果它重新启动
- 25. 如果在目录大于X,则重新启动服务
- 26. 如何停止并重新启动memcached服务器?
- 27. 如何停止(并重新启动!)Tornado服务器?
- 28. 如何将icecast制作为服务并重新启动?
- 29. 服务已经启用,并且是死
- 30. 如何在杀死时自动重启服务?
不要。使用监视工具(如'monit'或'supervisord'或'runit'或'systemd'或任何其他少数几个)。 –
@EtanReisner systemd具有看门狗支持(如果alive-ping没有发送到systemd,则重新启动服务),但是如果check-service-alive-script失败,它不会重新启动服务:: https://lists.freedesktop.org/ archives/systemd-devel/2016-May/036683.html“这真的超出了systemd的范围,这是监测,我不确信在systemd中定制检查功能支持是否合适,这应该在systemd 真的。“ – guettli
@guettli有趣。这似乎是一个非常小的头发要分裂给我,但。 –