start-stop-daemon(8) startet und stoppt System-Daemon-Programme

ÜBERSICHT

start-stop-daemon [Option …] Befehl

BESCHREIBUNG

start-stop-daemon wird zur Steuerung der Erzeugung und Beendigung von Prozessen auf Systemebene verwendet. Durch die Verwendung einer der Abgleich-Optionen kann start-stop-daemon so konfiguriert werden, dass er existierende Instanzen von einem laufenden Prozess finden kann.

Hinweis: Falls --pid oder --pidfile nicht angegeben ist, verhält sich start-stop-daemon ähnlich zu killall(1). start-stop-daemon wird die Prozesstabelle nach Prozessen durchsuchen, die auf den Prozessnamen, die Eltern-PID, uid und/oder gid (falls angegeben) passen. Jeder passende Prozess wird --start daran hindern, den Daemon zu starten. Allen passenden Prozessen wird das TERM-Signal (oder das mit --signal oder --retry angegebene) geschickt, falls --stop angegeben ist. Für Daemons die langlebige Kinder haben, die ein --stop überleben müssen, müssen Sie eine PID-Datei angeben.

BEFEHLE

-S, --start [--] Argumente
Prüfe auf Existenz eines angegebenen Prozesses. Falls ein solcher Prozess existiert führt start-stop-daemon nichts aus und beendet sich mit Fehlerstatus 1 (0, falls --oknodo angegeben wurde). Falls ein solcher Prozess nicht existiert, dann startet es eine Instanz, entweder unter Verwendung des ausführbaren Programms, das mittels --exec (oder, falls angegeben, mittels --startas) spezifiziert wurde. Jedes weitere auf der Befehlszeile nach -- angegebene Argument wird unverändert an das zu startende Programm weitergegeben.
-K, --stop
Überprüft auf die Existenz eines speziellen Prozesses. Falls ein solcher Prozess existiert, dann sendet start-stop-daemon das durch --signal angegebene Signal und beendet sich mit Fehlerstatus 0. Falls kein solcher Prozess existiert, dann beendet sich start-stop-daemon mit Fehlerstatus 1 (0 falls --oknodo angegeben ist). Falls --retry angegeben wurde, wird start-stop-daemon überprüfen, ob der/die Prozess(e) beendet wurden.
-T, --status
Überprüft auf die Existenz eines bestimmten Prozesses und liefert den Exit-Status-Code entsprechend der »LSB Init Script Actions« zurück (seit Version 1.16.1).
-H, --help
Zeige Bedienungsinformationen und beendet sich.
-V, --version
Zeige die Programmversion und beendet sich.

OPTIONEN

Abgleichoptionen

--pid PID
Prüfe auf einen Prozess mit der angegebenen PID (seit Version 1.17.6). Die PID muss eine Zahl größer Null sein.
--ppid PPID
Prüfe auf einen Prozess mit der angegebenen Eltern-PID PPID (seit Version 1.17.7). Die PPID muss eine Zahl größer Null sein.
-p, --pidfile pid-Datei
Prüfe, ob ein Prozess pid-Datei erstellt hat. Hinweis: Wird diese Abgleichoption alleine verwandt, könnte auf nicht geplante Prozesse eingewirkt werden, falls der alte Prozess beendet wurde, ohne dass er pid-Datei entfernen konnte.
-x, --exec Programm
Überprüfe auf Prozesse, die Instanzen von diesem Programm sind. Das Argument Programm sollte ein absoluter Pfadname sein. Hinweis: Dies könnte bei interpretierten Skripten nicht wie geplant funktionieren, da das Programm auf den Interpreter zeigt. Berücksichtigen Sie, dass dies auch auf Prozesse, die innerhalb einer Chroot laufen, passen könnte, daher könnten andere Abgleichrestriktionen benötigt werden.
-n, --name Prozessname
Überprüfe auf Prozesse mit dem Namen Prozessname. Der Prozessname ist normalerweise der Dateiname des Prozesses, er könnte aber vom Prozess selbst geändert worden sein. Hinweis: Auf den meisten Systemen wird diese Information aus dem »comm«-Namen des Prozesses aus dem Kernel ausgelesen. Dieser hat typischerweise eine recht kurze Längenbegrenzung (mehr als 15 Zeichen anzunehmen ist nicht portabel).
-u, --user Benutzername|uid
Überprüfe auf Prozesse die dem mit Benutzername oder uid spezifizierten Benutzer gehören. Hinweis: Wird diese Abgleichoption alleine verwandt, wird auf alle Prozesse, die auf den Benutzer passen, eingewirkt.

Allgemeine Optionen:

-g, --group Gruppe|gid
Wechsle zum Starten des Prozesses zur Gruppe oder gid.
-s, --signal Signal
Mit --stop wird das an den zu beendenden Prozess zu sendende Signal spezifiziert (standardmäßig TERM).
-R, --retry Zeitüberschreitung|Plan
Mit --stop spezifiziert, dass start-stop-daemon überprüfen soll, ob der Prozess (die Prozesse) sich beenden. Es überprüft wiederholt, ob passende Prozesse laufen, bis dies nicht mehr der Fall ist. Falls sich die Prozesse nicht beenden, werden weitere im »Plan« angegebene Aktionen durchgeführt.

Falls Zeitüberschreitung anstelle von Plan spezifiziert wird, dann wird der Plan Signal/Zeitüberschreitung/KILL/Zeitüberschreitung verwendet, wobei Signal das mit --signal spezifizierte Signal ist.

Plan ist eine Liste von mindestens zwei durch Schrägstriche (/) getrennten Punkten; jeder Punkt kann aus -Signalnummer oder [-]Signalname bestehen, was bedeutet, dass dieses Signal gesendet werden soll, oder aus Zeitüberschreitung, was bedeutet, dass soviele Sekunden auf das Beenden von Prozessen gewartet werden soll, oder aus forever was bedeutet, den Rest des Plans falls notwendig für immer zu wiederholen.

Falls das Ende des Plans erreicht wird und forever nicht spezifiziert wurde, dann beendet sich der start-stop-daemon mit dem Fehlerstatus 2. Falls ein Plan spezifiziert wurde, dann wird jedes mit --signal spezifizierte Signal ignoriert.

-a, --startas Pfadname
Mit --start wird der über Pfadname spezifizierte Prozess gestartet. Falls nicht angegeben, werden standardmäßig die an --exec übergebenen Argumente verwendet.
-t, --test
Gebe die Aktionen aus, die erledigt würden und setze die entsprechenden Rückgabewerte, führe aber keine Aktionen durch.
-o, --oknodo
Liefert den Rückgabewert 0 anstatt 1 falls keine Aktionen ausgeführt wurden (würden).
-q, --quiet
Gebe keine informativen Meldungen aus, zeige nur Fehlermeldungen an.
-c , --chuid Benutzername|uid[:Gruppe|gid]
Wechsele vor dem Start des Prozesses zu diesem Benutzername/uid. Sie können durch Anhängen von : auch die Gruppe spezifizieren, in diesem Fall wird die Gruppe oder gid wie bei dem Befehl chown(1) (Benutzer:Gruppe) angegeben. Falls ein Benutzer ohne Gruppe angegeben ist, wird die primäre GID für diesen Benutzer verwandt. Wenn Sie diese Option verwenden, müssen Sie daran denken, dass die primäre und zusätzliche Gruppen auch gesetzt werden, selbst wenn die Option --group nicht angegeben wird. Die Option --group ist nur für Gruppen, in denen der Benutzer normalerweise kein Mitglied ist (wie das Hinzufügen von pro-Prozess Gruppenmitgliedschaften für generische Benutzer wie nobody).
-r, --chroot Wurzel
Chdir und chroot vor dem Start des Prozesse zu Wurzel. Bitte beachten Sie, dass die PID-Datei auch nach dem chroot geschrieben wird.
-d, --chdir Pfad
Chdir vor dem Starten des Prozesses zu Pfad. Dies wird, falls die -r|--chroot Option gesetzt ist, nach dem chroot durchgeführt. Falls nicht angegeben, wird start-stop-daemon vor dem Prozess-Start in das Wurzelverzeichnis wechseln.
-b, --background
Typischerweise verwendet für Programme, die sich nicht selbständig ablösen. Diese Option zwingt start-stop-daemon vor dem Start des Prozesses einen Fork durchzuführen, und zwingt diesen dann in den Hintergrund. Warnung: start-stop-daemon kann nicht den Rückgabewert überprüfen, falls der Prozess aus irgendeinem Grund nicht startet. Dies ist ein letztes Mittel und ist nur für Programme gedacht, bei denen das selbstständige Forken keinen Sinn ergibt oder wo es nicht sinnvoll ist, den Code hierfür hinzuzufügen.
-C, --no-close
Keinen Dateideskriptor schließen, wenn ein Daemon in den Hintergrund gezwungen wird (seit Version 1.16.5). Dies wird zu Fehlersuchzwecken angewandt oder um Dateideskriptoren zur Protokollierung der Prozessausgabe umzuleiten. Nur relevant bei der Verwendung von --background.
-N, --nicelevel Ganzzahl
Dies ändert die Priorität des Prozesses bevor er gestartet wird.
-P, --procsched Strategie:Priorität
Dies ändert die Prozesssteuerstrategie (»process scheduler policy«) und die Priorität des Prozesses, bevor dieser gestartet wird (seit Version 1.15.0). Die Priorität kann optional festgelegt werden, indem ein : gefolgt von einem Wert angegeben wird. Die Standard-Priorität beträgt 0. Die derzeit unterstützten Werte für die Strategie lauten other, fifo und rr.
-I, --iosched Klasse:Priorität
Dies ändert die IO-Steuerklasse (»IO scheduler class«) und die Priorität des Prozesses, bevor dieser gestartet wird (seit Version 1.15.0). Die Priorität kann optional festgelegt werden, indem ein : gefolgt von einem Wert angegeben wird. Die Standard-Priorität beträgt 4, außer Klasse lautet idle, dann beträgt sie immer 7. Die derzeit unterstützten Werte für die Klasse lauten idle, best-effort und real-time.
-k, --umask Maske
Dies setzt die umask des Prozesses, bevor er gestartet wird (seit Version 1.13.22).
-m, --make-pidfile
Verwendet, wenn ein Programm gestartet wird, das keine eigene PID-Datei anlegt. Diese Option sorgt dafür, dass start-stop-daemon die mit --pidfile referenzierte Datei anlegt und die PID kurz vor der Ausführung des Prozesse hineinlegt. Beachten Sie, dass die Datei beim Anhalten des Programms nur entfernt wird, falls --remove-pidfile verwandt wird. Hinweis: Diese Funktion könnte in nicht allen Fällen funktionieren. Insbesondere wenn das auszuführende Programm sich vom Hauptprozess forkt. Deshalb ist diese Option normalerweise nur in Kombination mit der Option --background sinnvoll.
--remove-pidfile
Wird verwandt, wenn ein Programm gestoppt wird, das seine PID-Datei nicht entfernt (seit Version 1.17.19). Diese Option führt dazu, dass start-stop-daemon die durch --pidfile referenzierte Datei nach der Beendigung des Prozesses entfernt.
-v, --verbose
Gibt ausführliche informative Meldungen aus.

RÜCKGABEWERT

0
Die angeforderte Aktion wurde durchgeführt. Falls --oknodo angegeben wurde, kann es auch sein, dass nicht durchgeführt wurde. Das kann passieren, wenn --start angegeben wurde und der passende Prozess bereits lief oder wenn --stop angegeben wurde und es keinen passenden Prozess gab.
1
Falls --oknodo nicht angegeben war und nichts durchgeführt wurde.
2
Falls --stop und --retry angegeben waren, aber das Ende des Plans erreicht wurde und die Prozesse noch liefen.
3
Jeder andere Fehler.

Bei der Verwendung des Befehls --status werden die folgenden Statuscodes zurückgeliefert:

0
Programm läuft.
1
Programm läuft nicht und die PID-Datei existiert.
3
Programm läuft nicht.
4
Programmstatus kann nicht bestimmt werden.

BEISPIEL

Starte den Daemon food falls noch keiner läuft (ein Prozess mit Namen food, der als Benutzer food mit PID in food.pid läuft):
start-stop-daemon --start --oknodo --user food --name food \
        --pidfile /run/food.pid --startas /usr/sbin/food \
        --chuid food -- --daemon

Schicke SIGTERM an food und warte bis zu fünf Sekunden auf sein Beenden:

start-stop-daemon --stop --oknodo --user food --name food \
        --pidfile /run/food.pid --retry 5

Vorführung eines angepassten Plans zum Beenden von food:

start-stop-daemon --stop --oknodo --user food --name food \
        --pidfile /run/food.pid --retry=TERM/30/KILL/5

ÜBERSETZUNG

Die deutsche Übersetzung wurde 2004, 2006-2016 von Helge Kreutzmann <[email protected]>, 2007 von Florian Rehnisch <[email protected]> und 2008 von Sven Joachim <[email protected]> angefertigt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 2 oder neuer für die Kopierbedingungen. Es gibt KEINE HAFTUNG.