Monit执行两次启动程序

我试图用monit来监视docker。

我的/ etc / monit / monitrc

... set daemon 30 # check services at 30-seconds intervals ... check program someredis with path "/home/user/scripts/docker_top_wrapper_for_monit.sh" start program = "/home/user/scripts/start_docker_redis.sh" stop program = "/home/user/scripts/stop_docker_redis.sh" if status != 0 then start 

/home/user/scripts/docker_top_wrapper_for_monit.sh

 #!/bin/bash sudo docker top some-redis; exit $?; 

(当docker“some-redis”没有运行时,“docker top”命令返回“来自守护进程的错误响应:没有这样的容器:some-redis”,退出代码为(1),否则为(0))

当我停止我的some-redis docker monit时检查它并执行“启动程序”脚本/home/user/scripts/start_docker_redis.sh

 #!/bin/bash sudo docker run --name some-redis -d redis 

但在接下来的迭代中(当docker运行的时候)monit再次启动他!

 [+05 May 4 14:10:36] error : 'someredis' Error response from daemon: No such container: some-redis [+05 May 4 14:10:36] info : 'someredis' start: /home/user/scripts/start_docker_redis.sh [+05 May 4 14:11:06] error : 'someredis' Error response from daemon: No such container: some-redis [+05 May 4 14:11:06] info : 'someredis' start: /home/user/scripts/start_docker_redis.sh [+05 May 4 14:11:36] info : 'someredis' status succeeded 

为什么monit执行两次?

Interesting Posts