sendmail semmelt nach Confixx umlauf ab..

sundriver

Registered User
Hallo @ all,

zu Anfang: OS SuSE9.2 - Apache2.xx Rootserver

Problem:
Jedesmal wenn Confixx ( Prof. Edition.. ) die virtusertable oder das aliases File neu schreiben muss semmelt mir Sendmail ab. Das Problem dabei ist das dass *.pid file in /var/spool/clientmqueue/sm-client.pid stehen bleibt und ein rcsendmail
status somit jedesmal ein "running" ausgibt. Ich habe nun einen Cron eingerichtet der folgendermassen aussieht:
Code:
# check every 10 minutes if sendmail is still running, if not restart

*/10 * * * *  root /sbin/checkproc -p /var/run/sendmail.pid /usr/sbin/sendmail || /root/check-sendmail.sh
Dieser soll nun alle 10 minuten prüfen ob in /var/run/ noch das sendmail.pid file vorhanden ist ( es ist nach dem Absturz nicht mehr vorhanden ) und soll das Script check-sendmail.sh in /root ausführen.

Code:
#!/bin/sh

        killall sendmail
        sleep 2
	/etc/init.d/sendmail start

Das Problem ist hier aber das das Script durch den Cron nicht ausgeführt wird, ein /etc/init.d/cron restart habe ich ausgeführt, alles läuft unter root mit den Rechten 755, das sollte m.E. reichen. Wenn ich das Script von der Shell aus starte funktioniert es bestens, wer von Euch kann mir hier bitte sagen was falsch läuft??
Bin für jede Hilfe Dankbar!

EDIT:
stehe echt vor einem Rätsel wg dem blöden Confixx..
Es ist tatsächlich so, dass nachdem Confixx die o.g. Files neu geschrieben hat ein Scan mit nmap am Port25 keine aktivitäten zeigt und das pid file in /var/run/sendmail.pid nicht existent ist, in /var/spool/clientmqueue/sm-client.pid ist es aber noch existent weshalb wohl ein rcsendmail status ein "running" zurück gibt. Der o.a. Cron erkennt aber irgendwie nicht das, dass zu prüfende pid file nicht existent ist und reagiert deshalb nicht. Erst nach einem rcsendmail stop reagiert der Cron und startet das Script. Ich blick hier nicht mehr durch.. Wie kann ich denn noch prüfen ob Sendmail läuft oder Port 25 aktiv ist? Oder gibt es eine einfache Möglichkeit zu prüfen ob eine der beiden Files, virtusertable und aliases neu geschrieben worden sind um danach dann check-sendmail.sh ausführen??
Ich habe das Script auch noch in einer anderen Version:
Code:
#!/bin/sh

msppid=/var/spool/clientmqueue/sm-client.pid
srvpid=/var/run/sendmail.pid

checkproc -p $srvpid /usr/sbin/sendmail || checkproc -p $msppid /usr/sbin/sendmail

if [ $? -ne 0 ] ; then
       	killproc -p $msppid -TERM /usr/sbin/sendmail
       	killproc -p $srvpid -TERM /usr/sbin/sendmail
	sleep 2
	killall sendmail
        sleep 2
	/etc/init.d/sendmail start
fi

aber auch hier funktioniert es auch erst dann wenn ein rcsendmail stop erfolgt ist, es erkennt nicht das sendmail abgesemmelt ist...

bye
Sundriver
 
Last edited by a moderator:
Back
Top