Monitnetworking可用性检查

我想开始一个服务,但只有当我有正确的IP绑定到主机。 这可以做一些正常的configuration吗? 例如,我想用pidfile xxx.pid启动一个进程xxx,但是只有当主机目前有10.0.0.1绑定到某个接口。

可能是纯粹的monit不能完成的。

你可以编写一个shell脚本来检查IP是否绑定到某个接口上,而不是启动服务,但是副作用是monit会抱怨如果在monit启动之后没有创buildpid文件,那么程序没有启动。

更新:您可以通过添加本地警报声明来禁用此警告:

check process myproc with pidfile /var/run/my.pid alert foo@bar only on { timeout } 

更新2: Bash脚本可以是这样的(你需要把实际的启动脚本作为参数):

 #!/usr/bin/env bash for i in `/sbin/ifconfig -a | grep 'inet addr:' | awk '{print $2}' | sed -e 's/^.*://'` ;do if [ "$i" == "10.0.0.1" ] ; then $1 fi done 

旧的问题是旧的,无论如何:你可以使用guessnet + ifupdown这个。