I run the following once an hour out of cron on my FreeBSD mailserver,
the echos are merely stuff the log and aren't necessary.  You could
easily delete them:

$ cat /root/spamdwatch.sh

#!/bin/sh
if ps -p `cat /var/run/spamd/spamd.pid` > /dev/null; then
  echo spamd is running
else
  echo spamd is not running
#  notify Support desk - SPAMD is offline
killall spamd
/usr/local/etc/rc.d/sa-spamd  start
/usr/sbin/sendmail -f devn...@ipinc.net -t << RedCatSun
To: supp...@ipinc.net
From: r...@ipinc.net
Subject: SPAMD daemon was restarted
Errors-To:
possible spamd failures on mail.ipinc.net

RedCatSun
fi

For a dirty disgusting ugly hack it works well.

Let me just say for the record that I find it extremely disappointing to
have to do this.  All of the prior versions of spamd were stable enough
that the spamd daemon would last for months without trouble.  But the
current one dies every few days or so.

Ted

On 10/31/2012 6:42 AM, Troy McBride wrote:
I am trying to write a script that takes an array of server names and
pings their spamd to make sure that it is still alive.

$t = new Net::Telnet(Prompt=>'//', Port=> 783,
output_log=>"out_log.txt", input_log=>"in_log.txt");

for($i=0;$i<$count;$i++) {
   $t -> open(@server_list[$i]);
   $line = $t->cmd(String=>"PING SPAMC/1.0");
   $line = $t->getline();

   if($line =~ /PONG/) {
     push(@goodservers, $server_list[$i]);
   }  else {
     push(@badservers, $server_list[$1]);
   }

}

Is this a stable solution to my problem?  Has anyone done anything like
this and been successful?

Thanks,
TDM

Reply via email to