monit可以重新启动的日期和/或时间与正常运行时间相比吗?

时间:2015-07-17 21:17:33

标签: ubuntu monit

如果我想让monit每7天重启一个进程,我可以使用

https://mmonit.com/monit/documentation/monit.html#PROCESS-UPTIME-TESTING
if uptime > 7 days then restart

但是,monit是否有内置的方式在某个日期/时间重新启动?例如:

restart every saturday night at midnight

这是否存在? 如果不是其他人怎么处理这个?

2 个答案:

答案 0 :(得分:0)

我知道这是一个旧帖子,但是如果有人有同样的问题,我想分享我的意见。

我认为应该通过调用monit来重启服务的cron作业来更好地处理这个问题。

例如,我们希望每周六晚上午夜重新启动mariadb的守护。我首先将monit描述符定义为:

 check process mariadb with pidfile /var/lib/mysql/mariadb.pid
   group database
   start program = "/bin/systemctl start mariadb" with timeout 150 seconds
   stop program = "/bin/systemctl stop mariadb"
   if failed
      host 127.0.0.1
      port 3306 protocol
      mysql
   then restart

在crontab中我会在周日午夜重启这个条目:

0 0 * * 0 monit restart mariadb

我发现保持cron执行计划任务是最好的,因为它是该任务的goto工具。这样,如果有新的人来到这个环境,他就会马上知道在哪里更改服务重新启动的时间。

答案 1 :(得分:0)

我同意vesquam的答案,但对我来说,最好使用专门用于重新启动的额外check program语句在Monit中指定crontab条目:

check program mariadb_restart with path "/bin/monit restart mariadb"
    with timeout 600 seconds
    every "0 0 * * 0-6"
    if status != 0 then alert

优点:全部集中在一处,重新启动失败时您会收到警报。等等