微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Shell脚本在其中一个守护程序死掉时执行某些操作?

我只需要在不同的端口上构建两个守护进程实例.让我们说它们都为某些应用程序提供关键任务.

如果其中一个守护程序无法提供服务,我如何执行一些自动任务(例如shell脚本)执行以检查两个守护程序?

什么样的脚本可以随时检查守护程序的生命,如果其中一个守护程序偶然停止,可能会执行其他一些工作?

monit在这种情况下非常棒 – 它在localhost上运行,因此您不需要网络连接来重新启动守护程序(如果它失败,或守护程序负责网络连接).它在系统上的占用空间也很小,您可以使用它来监视其他守护进程/磁盘空间/等.同样.

创建一个启动/停止脚本(类似于/etc/init.d/中的脚本,并在系统用于正常操作的运行级别中为它创建符号链接,确保您的守护程序在重新启动时启动并在关闭时正常停止.如果您的守护程序没有pidfile,使用start-stop-daemon脚本创建一个.

之后,安装monit并为您的守护进程创建配置,如下所示:

check process daemond with pidfile /var/run/daemond.pid
    start program "/etc/init.d/daemond start"
    stop program "/etc/init.d/daemond stop"
    if Failed port 1234 type TCP for 5 times within 10 cycles then restart
    if 3 restarts within 5 cycles then alert

此配置将确保如果守护程序在tcp端口1234上停止响应,或将停止运行,则将使用init脚本重新启动它. monit还会通过电子邮件向您发送提醒,或者根据您的配置方式执行其他操作.查看monit(1)联机帮助页.

原文地址:https://www.jb51.cc/bash/385251.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐