Postfix automatisch neu starten
Wie man Netzwerk-Dienste wie z.B. Postfix (auch MTA genannt) überwachen kann, haben wir bereits in unserem anderen Beitrag Dovecot bereits schon gezeigt. Das gleiche Grundscript verwenden wir in einer etwas geänderten Form auch hier, indem wir prüfen ob es einen Prozess gibt, der auf dem Port 25 lauscht. So bauen wir uns mit einfachen Mitteln eine kleine Prozessüberwachung.
Wir schon in unserem Dovecot Beitrag erwähnt können Sie auch Tools wie z.B die DaemonTools verwenden um Ihre Prozesses zu überwachen. Die DaemonTools überwachen alle möglichen aktiven Prozesse und starten diese bei Bedarf neu wenn sie nicht mehr reagieren. Allerdings ist die Einrichtung der DaemonTools nicht ganz einfach und für einige Anwendungsfälle einfach zu groß. Wenn man nur eine Handvoll Dienste überwachen will, dann reicht unser kleines Script meistens schon aus.
/usr/local/sbin/postfix_check_restart.sh
#!/bin/sh HOST='localhost' PORT=25 #PORT=143 #HP=@$HOST:$PORT HP=:$PORT echo 'Checking to see if Postfix is up...' if ( lsof -Pni $HP | grep "$PORT (LISTEN)" 2>&1 >/dev/null ); then echo 'Postfix is up'; else echo 'Postfix is down, restarting...'; /etc/init.d/postfix restart logger -p mail.info postfix_check_restart.sh restarting Postfix fi
…und nicht vergessen im Crontab das Script aufzurufen 😉
# Postfix Check * * * * * /usr/local/sbin/postfix_check_restart.sh 2>&1 > /dev/null Jede Minute prüft das Script ob auf dem Port 25 ein Prozess lauscht. Dadurch gewährleistet, dass der MTA nur kurzzeitig ausfällt. Trotzdem sollte man regelmäßig die Logs prüfen und nach den Gründen suchen wenn der MTA ständig abstürzt und neu gestarten wird!