Dienste nach Absturz neu starten

mama

Well-Known Member
Hallo,

da ich von Linux komme und bald einen Server mit FreeBSD aufsetzen will, frage ich mich, wie ich einen Dienst neu starte, nachdem er gecrasht ist. Bei Linux erledigt das Init , bei FreeBSD aber glaube ich nicht.
Ich habe, um das zu prüfen, sshd abgeschossen. Danach startete er sich nicht neu. Kann man da irgendetwas mit dem mitgelieferten init machen, oder gibt es irgenwelche Pakete oder muss ich mir selber was schreiben.
Danke für gute Ratschläge
 
Schon was neues dazu rausgefunden? Würde mich auch interessieren, daher bringe ich den Thread mal wieder nach oben...

Gruß, I.MC
 
Wenn ein Dienst absemmelt, dann kann man diesen über rc.d wieder starten. Ist es ein Dienst aus dem Base-System, so kann man diesen über /etc/rc.d/ wieder starten:
Code:
/etc/rc.d/sshd 
Usage: /etc/rc.d/sshd [fast|force](start|stop|restart|rcvar|keygen|reload|status|poll)

Andere Prozsse, wie beispielsweise der Apache, oder postfix sollten ihre startscripte in /usr/local/etc/rc.d/ haben und können darüber neu gestartet werden.

Interessant dürften auch die daemontools von djb sein (in den Ports).
 
Laut manpage gibt es da etwas:

The init utility can also be used to keep arbitrary daemons running,
automatically restarting them if they die. In this case, the first field
in the ttys(5) file must not reference the path to a configured device
node and will be passed to the daemon as the final argument on its com-
mand line. This is similar to the facility offered in the AT&T System V
UNIX /etc/inittab.

Aber ich habe noch nicht herausgefunden wie es funktioniert.
 
Danke für die Antworten,
Dieses Programm djb kann mir wahrscheinlich weiterhelfen.
Unter Linux und wahrscheinlich auch anderen Unices konnte man es durch init machen.
FreeBSD benutzt leider nur ein sogenanntes Simpleinit. naja. Ich werde mal schauen was es da mit diesem kryptischen Eintrag vin init auf sich hat. Wenn ich mehr weiss, lasse ich es euch zukommen.
Danke jedenfalls für die vielen Antworten
 
Keine besonders elegante Lösung dafür quick&dirty (hält bei mir den mlDonkey am laufen):
Code:
#!/bin/sh
status=`/usr/local/bin/pidof mlnet`
if [ -z "$status" ]
then
echo "mlDonkey restarted at `date`" >> restarts.txt
/usr/local/etc/rc.d/mldonkey.sh start
fi
exit 0
Dieser Codeschnipsel läuft bei mir via cron jede Minute und hat bis jetzt zuverlässig seinen Dienst geleistet, der Nachteil liegt halt in genau dieser Verzögerung von bis zu einer Minute. D.h. ein abgestürzter Prozess wird nicht sofort sondern erst beim Durchlaufen des obigen Scripts wieder neu gestartet.
 
Zurück
Oben