Warum fällt mir sowas erst immer dann ein, wenn’s nervt…
Bei einem Server, den ich in meiner Freizeit betreue, stirbt ab und an der lpd Daemon. Und das dann meistens leider am Wochenende, wenn nicht genügend Papier in einem der angeschlossenen Drucker war. Bisher hab ich das ganze jedes mal (4-5 mal im Jahr) nach dem Anruf der User manuell neu gestartet. Zu meiner Schande muss ich gestehen, dass ich weder den Daemon mit Nagios überwacht noch mittels Eventhandler neu gestartet hatte.
Diese Woche ist’s mal wieder passiert. Der Daemon ist am Montag gestorben und ich wurde durch die User alamiert. Daher war’s Zeit für die Automatisierung. Die Lösung ist so simple. Es gibt mit restartd einen Daemon, der Prozesse überwacht und bei Bedarf neu startet. Das ganze wird auch sehr einfach in /etc/restartd.conf konfiguriert. In meinem Beispiel sieht es wie folgt aus:
lpr "/usr/sbin/lpd" "/etc/init.d/lpd start" "echo '' > /dev/null"
D.h. lpr soll anhand vom „/usr/bin/lpd“ Prozess überwacht werden. Wenn’s nicht läuft, dann einfach mit /etc/init.d/lpd start neu starten. Ansonsten nichts nach /dev/null loggen. Fertig. Das Teil überwacht das ganze im Standardfall alle 20 Sekunden und ist auch prima geeignet seinen pppoe Daemon oder arpwatch zu überwachen. Auf meinem Server sieht die Konfig so aus:
pppoe "dsl-provider" "/etc/init.d/networking restart"
arpwatch "arpwatch" "/etc/init.d/arpwatch restart"
Das schreib ich mir auf, damit ich beim nächsten mal direkt daran denke und nicht wieder manuell eingreife.