start-stop-daemon
Section: dpkg suite (8)
Updated: 1970-01-01
Page Index
BEZEICHNUNG
start-stop-daemon - 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üft 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
-
Prüft auf die Existenz eines angegebenen 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
-
Prüft auf die Existenz eines bestimmten Prozesses und liefert den
Exit-Status-Code entsprechend der BqLSB Init Script Actions" zurück (seit
Version 1.16.1).
- -H, --help
-
Gibt eine Meldung zur Verwendung aus und beendet das Programm.
- -V, --version
-
Zeigt die Programmversion und beendet sich.
OPTIONEN
Abgleichoptionen
- --pid PID
-
Prüft auf einen Prozess mit der angegebenen PID (seit Version
1.17.6). Die PID muss eine Zahl größer Null sein.
- --ppid PPID
-
Prüft 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üft, ob ein Prozess die Datei PID-Datei angelegt 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.
Warnung: Wird diese Abgleichoption mit einer durch alle Benutzer
schreibbare PID-Datei oder alleine mit einem Daemon, der als nicht
privilegierter Benutzer (d.h. nicht als root) in eine PID-Datei schreibt,
verwandt, dann wird dies mit einem Fehler abgelehnt (seit Version 1.19.3),
da dies ein Sicherheitsrisiko darstellt, da entweder jeder Benutzer
hineinschreiben kann oder, falls der Daemon kompromittiert wird, dem Inhalt
der PID-Datei nicht vertraut werden kann und dann ein privilegierter
Ausführer (wie ein als Root ausgeführtes Init-Skript) am Ende auf jeden
Systemprozess agieren würde. Die Verwendung von /dev/null ist von diesen
Prüfungen ausgenommen.
- -x, --exec Programm
-
Überprüft 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üft 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
Bqcomm"-Namen des Prozesses aus dem Kernel ausgelesen. Dessen Länge ist
typischerweise sehr begrenzt (mehr als 15 Zeichen anzunehmen ist nicht
portabel).
- -u, --user Benutzername|uid
-
Überprüft 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
-
Wechselt 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 BqPlan" 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 so viele
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
-
Gibt die Aktionen aus, die erledigt würden und setzt die entsprechenden
Rückgabewerte, führt aber keine Aktionen durch.
- -o, --oknodo
-
Liefert den Rückgabewert 0 anstatt 1, falls keine Aktionen ausgeführt wurden
(würden).
- -q, --quiet
-
Gibt keine informativen Meldungen aus, zeigt nur Fehlermeldungen an.
- -c , --chuid Benutzername|uid[:Gruppe|gid]
-
Wechselt 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
-
Wechselt das Verzeichnis vor dem Start des Prozesses zu Wurzel und ruft
chroot auf. Bitte beachten Sie, dass die PID-Datei auch nach dem Aufruf
von chroot geschrieben wird.
- -d, --chdir Pfad
-
Wechselt vor dem Starten des Prozesses zum Verzeichnis Pfad. Dies wird,
falls die -r|--chroot Option gesetzt ist, nach dem Aufruf von
chroot durchgeführt. Falls nicht angegeben, wird start-stop-daemon vor
dem Prozess-Start in das Wurzelverzeichnis wechseln.
- -b, --background
-
Wird typischerweise für Programme verwandt, 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.
- --notify-await
-
Wartet, dass der Hintergrundprozess eine Bereitschaftsbenachrichtigung
sendet, bevor der Dienst als gestartet betrachtet wird (seit Version
1.19.3). Dies implementiert Teile des Bereitschaftsprotokolls von Systemd,
wie es in der Handbuchseite sd_notify(3) festgelegt ist. Die folgenden
Variablen werden unterstützt:
-
- READY=1
-
Das Programm ist bereit, den Dienst zu leisten, daher kann sicher beendet
werden.
- EXTEND_TIMEOUT_USEC=Anzahl
-
Das Programm erbittet die Verlängerung der Zeitüberschreitung um Anzahl
Mikrosekunden. Dies wird die aktuelle Zeitüberschreitung auf den
festgelegten Wert zurücksetzen.
- ERRNO=Nummer
-
Das Programm beendete sich mit einem Fehler. Macht das gleiche und gibt die
benutzerfreundliche Zeichenkette für den Wert von errno aus.
-
- --notify-timeout Zeitüberschreitung
-
Setzt eine Zeitüberschreitung für die Option --notify-await (seit Version
1.19.3). Wenn die Zeitüberschreitung erreicht wird, wird sich
start-stop-daemon mit einem Fehler-Code beenden und es wird auf keine
Bereitschaftsbenachrichtigung gewartet. Die Vorgabe ist 60 Sekunden.
- -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.
- -O, --output Pfadname
-
Leitet stdout und stderr auf Pfadname um, wenn der Daemon in den
Hintergrund gezwungen wird (seit Version 1.20.6). Nur relevant bei Einsatz
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 (Bqprocess 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 EA-Steuerklasse (BqIO 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
-
Wird verwandt, 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 Prozesses 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 nichts 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
Den Daemon
food starten, 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
SIGTERM an food schicken und bis zu fünf Sekunden auf sein Beenden
warten:
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-2020 von Helge Kreutzmann
<
debian@helgefjell.de>, 2007 von Florian Rehnisch <
eixman@gmx.de> und
2008 von Sven Joachim <
svenjoac@gmx.de>
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.