【问题标题】:Monit - stop service and stay stopped?Monit - 停止服务并保持停止状态?
【发布时间】:2011-09-15 12:46:53
【问题描述】:

我有一个通过通常的 init.d/service 脚本运行的守护进程。

我正在运行监视器,以确保这些守护程序在崩溃时会重新启动。

我有一个请求,'service foo stop' 应该停止守护进程,并且因为它是显式停止的,而不是崩溃,monit 不应该重新启动它。如何使用 monit 实现这一目标?

我可以让服务脚本的 stop() 例程调用“monit unmonitor”,但这似乎是循环和错误的。

谢谢, 戴夫

【问题讨论】:

    标签: monit


    【解决方案1】:

    我认为您应该使用monit stop foo 而不是service foo stop。这样,Monit 就知道服务没有崩溃——也不会重新启动它。

    【讨论】:

      【解决方案2】:

      有一个MODE 参数:

      Monit 支持每种服务的三种监控模式:主动、被动和手动。

      语法:

      模式 在主动模式(默认)下,Monit 将主动监控服务,并在出现问题时发出警报和/或重新启动服务。

      在被动模式下,Monit 将被动监控服务并发出警报,但不会尝试通过执行启动、停止或重新启动来解决问题。

      在手动模式下,只有通过 Monit 启动服务时,Monit 才会进入活动模式

      从这里:https://mmonit.com/monit/documentation/monit.html#SERVICE-MONITORING-MODE

      这样,如果您通过 runit 或 upstart 管理服务,并且只想将 monit 用于警报和仪表板,您只需为所有此类服务设置 modepassive

      例如:

      check process heka with pidfile /etc/sv/myservice/supervise/pid
          start program = "/usr/bin/sv start myservice"
          stop program = "/usr/bin/sv stop myservice"
          mode passive
      

      如果您需要在线启用/禁用该功能但不是永久 - 请参考其他人的答案,他们很好。

      【讨论】:

        【解决方案3】:

        型号是: Monit 由 init.d 作为服务运行,因此由 init.d 控制(停止/启动/重启)。 (其他,如果我错了,请告诉我)。 需要监控的应用由monit处理。

        因此,此类应用程序应仅通过 monit 进行控制,即停止/启动/重新启动。 监控

        【讨论】:

          【解决方案4】:
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-23
          • 2020-06-18
          • 1970-01-01
          • 2019-05-18
          相关资源
          最近更新 更多