Dienste & Daemons neu starten ohne reboot

nihonto

Well-Known Member
Hiho,

da ich gerade krampfhaft versuche, meinen 08/15-USB-Drucker zum drucken zu überreden, ist mir aufgefallen, dass ich gar nicht weiß, wie man Daemons oder Dienste a la cupsd unter OpenBSD neu startet:p.

Unter Debian/Linux geht das über sowas: /etc/init.d/<dienst> start|stop|restart
Unter FreeBSD geht's meines Wissens so: /usr/local/etc/rc.d/<dienst> restart (usw.)

Aber wie geht das unter OpenBSD? Muss peinlicherweise gestehen, dass ich momentan winlike meinen Rechner immer reboote:zitter:.
 
Ich hab zwar nie ein richtiges OpenBSD gehabt, aber mit hoher Wahrscheinlichkeit funktioniert
Code:
kill -HUP $processID
Das läßt sich natürlich auch mit killall und pid(of) verwenden, z.B.
Code:
kill -HUP `cat /var/run/inetd.pid`
Probiere es mal aus.
 
Hi Steve,

vielen Dank für die Info:)!

Aber gibt es nicht auch eine Möglichkeit, Dienste mit einem Befehl neu zu starten?

Oder wenigstens eine klare Befehlsreihenfolge mit der Dienste im laufenden System ab- und wieder eingeschaltet werden können?

Also etwa so:

Code:
<pfad_zum_dienst_oder_init_script> stop
<pfad_zum_dienst_oder_init_script> start
 
So ein Skript wäre nur ein paar Zeilen lang. Falls es unter OpenBSD pgrep gibt kannst du die Daemonen sogar mit den gleichen Parametern neu starten.
 
@all

Vielen Dank für die Hinweise und Tipps:)! Wenn ich irgendwann mal ganz viel Zeit habe, arbeite ich mich vielleicht noch da ein, aber momentan ist mir meine Freizeit etwas zu kostbar, um sowas von Null zu lernen (sitze eh schon viel zu oft und zu lange vorm Computer). Da wär's vermutlich sinnvoller gewesen, wenn ich Informatik studiert hätte.

Ein Reboot tut's auch:D
 
In einem Informatik Studium lernt man so etwas nicht.

So etwas lernt man aus Manpages und HowTos.
 
... ja, wie ich einen Prozess kille, ist mir schon klar:). Aber wie soll ich ihn ohne reboot neu starten, wenn es dafür keine Funktion gibt - oder erledigt das "-HUP":confused:

"man kill" ist da nicht so recht eindeutig:

EXAMPLES
Forcibly terminate process ID 1234:

$ kill -9 1234

Send the inetd(8) daemon the hangup signal, instructing it to re-read its
configuration from /etc/inetd.conf:

# kill -HUP `cat /var/run/inetd.pid`

Hieße in dem genannten Beispiel "instructing it to re-read its configuration from /etc/inetd.conf", dass der inetd dann auch wieder gestartet wird?
 
... ja, wie ich einen Prozess kille, ist mir schon klar:). Aber wie soll ich ihn ohne reboot neu starten, wenn es dafür keine Funktion gibt - oder erledigt das "-HUP":confused:

"man kill" ist da nicht so recht eindeutig:

kill(1) ist dafuer auch die falsche Manpage. Im Zweifelsfall ist die Manpage des jeweiligen Daemons, hier also inetd(8) zu lesen. Was ein Programm macht, wenn es ein SIGHUP erhaelt, ist schliesslich Sache des Programms. inetd(8) z.B. startet sich nicht selbst neu, sondern liest lediglich die inetd.conf neu ein. dhcpd(8) hingegen kommt mit SIGHUP gar nicht klar.
 
der name von "kill" ist etwas irreführend... nihonto, der Befehl "killt" einen Prozess nicht, sondern schickt ihm ein Signal. Standardmäßig SIGTERM.

SIGHUP bedeutet "Hangup" und die meisten Dämonen reagieren darauf mit einem Reset. d.h. sie lesen die Config neu ein, oder ähnliches.

Nur zur Vollständigkeit: Für apache gibt es apachectl zum starten und beenden.

auf bald
oenone
 
Back
Top