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执行两次?