监控一次性服务

我们没有任何适当的服务监控解决scheme(我想在今年夏天纠正的情况),但我有一个特别的服务,我想监视。 [我们目前的监控系统,等待客户端出现问题,适用于广泛使用的系统,但这不会影响到很多人,比如说DHCP。]

我在OS X 10.3(Panther)盒子上(叹息)运行了所有合适的Type 3 Server [因为它不会自动在新的东西上自动启动,我们的软件采购人员真的不想要更新的软件]。客户端软件正在OS X 10.5(Leopard)下正常工作。

现在,我偶尔接到一个电话,说这个服务器已经closures了(而且机器本身还在上面),而且在有人拿起电话之前,我真的很想知道。 这个过程似乎被称为“atrtserv.osx”。 虽然它确实使用了networking,但是如果它的文档提到了如何发送消息来查看服务是否已经启动,那么我会感到惊讶,因此总是有一些粗糙的东西,比如每五分钟检查一下这个过程是否存在。

有没有简单的方法来监视一个服务,尤其是 在Mac上?

我不能保证这段代码正常工作(特别是以“RUNNING =”开头的行,而是replace你自己的一些testing,如果它正在运行,可以返回一个string,不行的话不需要string。

#!/bin/bash while true ; do RUNNING=`ps aux | grep atrtserv | grep -v grep` if [ -n "$RUNNING" ] ; then echo "atrtserv.osx is broken" | mail -s "atrtserv down" [email protected] sleep 300 else sleep 300 fi done 

编辑使用上面的pgrep而不是我的黑客

那么,真正简单的方式可能看起来像:

 pgrep atrtserv.osx >/dev/null || ( date | mail -s 'atrtserv.osx down on yourmachine.foo' [email protected] ) 

在你select的时间间隔内运行一个cron作业。

你可以写一个运行ps的小脚本,并且每5分钟运行一次cron。

如果发现有问题,邮件会邮寄给​​你。

总的实施时间将能够15分钟,我想。

尝试从达尔文港monit。