1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
|
*****************************************************
* GENERATED FILE, DO NOT EDIT *
* THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *
*****************************************************
This file was generated by po4a(7). Do not store it (in VCS, for example),
but store the PO file used as source file by po4a-translate.
In fact, consider this as a binary, and the PO file as a regular .c file:
If the PO get lost, keeping this translation up-to-date will be harder.
=encoding UTF-8
=head1 BEZEICHNUNG
start-stop-daemon - startet und stoppt System-Daemon-Programme
=head1 ÜBERSICHT
B<start-stop-daemon> [I<Option> …] I<Befehl>
=head1 BESCHREIBUNG
B<start-stop-daemon> wird zur Steuerung der Erzeugung und Beendigung von Prozessen auf Systemebene verwendet. Durch die Verwendung einer der Abgleich-Optionen kann B<start-stop-daemon> so konfiguriert werden, dass er existierende Instanzen von einem laufenden Prozess finden kann.
B<Hinweis>: Falls B<--pid> oder B<--pidfile> nicht angegeben ist, verhält sich B<start-stop-daemon> ähnlich zu L<killall(1)>. B<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 B<--start> daran hindern, den Daemon zu starten. Allen passenden Prozessen wird das TERM-Signal (oder das mit B<--signal> oder B<--retry> angegebene) geschickt, falls B<--stop> angegeben ist. Für Daemons, die langlebige Kinder haben, die ein B<--stop> überleben müssen, müssen Sie eine PID-Datei angeben.
=head1 BEFEHLE
=over
=item B<-S>, B<--start> [B<-->] I<Argumente>
Prüft auf Existenz eines angegebenen Prozesses. Falls ein solcher Prozess existiert, führt B<start-stop-daemon> nichts aus und beendet sich mit Fehlerstatus 1 (0, falls B<--oknodo> angegeben wurde). Falls ein solcher Prozess nicht existiert, dann startet es eine Instanz, entweder unter Verwendung des ausführbaren Programms, das mittels B<--exec> (oder, falls angegeben, mittels B<--startas>) spezifiziert wurde. Jedes weitere auf der Befehlszeile nach B<--> angegebene Argument wird unverändert an das zu startende Programm weitergegeben.
=item B<-K>, B<--stop>
Prüft auf die Existenz eines angegebenen Prozesses. Falls ein solcher Prozess existiert, dann sendet B<start-stop-daemon> das durch B<--signal> angegebene Signal und beendet sich mit Fehlerstatus 0. Falls kein solcher Prozess existiert, dann beendet sich B<start-stop-daemon> mit Fehlerstatus 1 (0 falls B<--oknodo> angegeben ist). Falls B<--retry> angegeben wurde, wird B<start-stop-daemon> überprüfen, ob der/die Prozess(e) beendet wurden.
=item B<-T>, B<--status>
Prü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).
=item B<-H>, B<--help>
Gibt eine Meldung zur Verwendung aus und beendet das Programm.
=item B<-V>, B<--version>
Zeigt die Programmversion und beendet sich.
=back
=head1 OPTIONEN
=head2 Abgleichoptionen
=over
=item B<--pid> I<PID>
Prüft auf einen Prozess mit der angegebenen I<PID> (seit Version 1.17.6). Die I<PID> muss eine Zahl größer Null sein.
=item B<--ppid> I<PPID>
Prüft auf einen Prozess mit der angegebenen Eltern-PID I<PPID> (seit Version 1.17.7). Die I<PPID> muss eine Zahl größer Null sein.
=item B<-p>, B<--pidfile> I<PID-Datei>
Prüft, ob ein Prozess die Datei I<PID-Datei> angelegt hat.
B<Hinweis>: Wird diese Abgleichoption alleine verwandt, könnte auf nicht geplante Prozesse eingewirkt werden, falls der alte Prozess beendet wurde, ohne dass er I<PID-Datei> entfernen konnte.
B<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 I</dev/null> ist von diesen Prüfungen ausgenommen.
=item B<-x>, B<--exec> I<Programm>
Überprüft auf Prozesse, die Instanzen von diesem I<Programm> sind. Das Argument I<Programm> sollte ein absoluter Pfadname sein.
B<Hinweis>: Dies könnte bei interpretierten Skripten nicht wie geplant funktionieren, da das I<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.
=item B<-n>, B<--name> I<Prozessname>
Überprüft auf Prozesse mit dem Namen I<Prozessname>. Der I<Prozessname> ist normalerweise der Dateiname des Prozesses, er könnte aber vom Prozess selbst geändert worden sein.
B<Hinweis>: Auf den meisten Systemen wird diese Information aus dem „comm“-Namen des Prozesses aus dem Kernel ausgelesen. Dessen Länge ist typischerweise sehr begrenzt (mehr als 15 Zeichen anzunehmen ist nicht portabel).
=item B<-u>, B<--user> I<Benutzername>|I<uid>
Überprüft auf Prozesse, die dem mit I<Benutzername> oder I<uid> spezifizierten Benutzer gehören.
B<Hinweis>: Wird diese Abgleichoption alleine verwandt, wird auf alle Prozesse, die auf den Benutzer passen, eingewirkt.
=back
=head2 Allgemeine Optionen:
=over
=item B<-g>, B<--group> I<Gruppe>|I<gid>
Wechselt zum Starten des Prozesses zur I<Gruppe> oder I<gid>.
=item B<-s>, B<--signal> I<Signal>
Mit B<--stop> wird das an den zu beendenden Prozess zu sendende Signal spezifiziert (standardmäßig TERM).
=item B<-R>, B<--retry> I<Zeitüberschreitung>|I<Plan>
Mit B<--stop> spezifiziert, dass B<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 I<Zeitüberschreitung> anstelle von I<Plan> spezifiziert wird, dann wird der Plan I<Signal>B</>I<Zeitüberschreitung>B</KILL/>I<Zeitüberschreitung> verwendet, wobei I<Signal> das mit B<--signal> spezifizierte Signal ist.
I<Plan> ist eine Liste von mindestens zwei durch Schrägstriche (B</>) getrennten Punkten; jeder Punkt kann aus B<->I<Signalnummer> oder [B<->]I<Signalname> bestehen, was bedeutet, dass dieses Signal gesendet werden soll, oder aus I<Zeitüberschreitung>, was bedeutet, dass so viele Sekunden auf das Beenden von Prozessen gewartet werden soll, oder aus B<forever>, was bedeutet, den Rest des Plans falls notwendig für immer zu wiederholen.
Falls das Ende des Plans erreicht wird und B<forever> nicht spezifiziert wurde, dann beendet sich der B<start-stop-daemon> mit dem Fehlerstatus 2. Falls ein Plan spezifiziert wurde, dann wird jedes mit B<--signal> spezifizierte Signal ignoriert.
=item B<-a>, B<--startas> I<Pfadname>
Mit B<--start> wird der über I<Pfadname> spezifizierte Prozess gestartet. Falls nicht angegeben, werden standardmäßig die an B<--exec> übergebenen Argumente verwendet.
=item B<-t>, B<--test>
Gibt die Aktionen aus, die erledigt würden und setzt die entsprechenden Rückgabewerte, führt aber keine Aktionen durch.
=item B<-o>, B<--oknodo>
Liefert den Rückgabewert 0 anstatt 1, falls keine Aktionen ausgeführt wurden (würden).
=item B<-q>, B<--quiet>
Gibt keine informativen Meldungen aus, zeigt nur Fehlermeldungen an.
=item B<-c> , B<--chuid> I<Benutzername>|I<uid>[B<:>I<Gruppe>|I<gid>]
Wechselt vor dem Start des Prozesses zu diesem Benutzername/uid. Sie können durch Anhängen von B<:> auch die Gruppe spezifizieren, in diesem Fall wird die Gruppe oder gid wie bei dem Befehl L<chown(1)> (I<Benutzer>B<:>I<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 B<--group> nicht angegeben wird. Die Option B<--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 B<nobody>).
=item B<-r>, B<--chroot> I<Wurzel>
Wechselt das Verzeichnis vor dem Start des Prozesses zu I<Wurzel> und ruft B<chroot> auf. Bitte beachten Sie, dass die PID-Datei auch nach dem Aufruf von B<chroot> geschrieben wird.
=item B<-d>, B<--chdir> I<Pfad>
Wechselt vor dem Starten des Prozesses zum Verzeichnis I<Pfad>. Dies wird, falls die B<-r>|B<--chroot> Option gesetzt ist, nach dem Aufruf von B<chroot> durchgeführt. Falls nicht angegeben, wird B<start-stop-daemon> vor dem Prozess-Start in das Wurzelverzeichnis wechseln.
=item B<-b>, B<--background>
Wird typischerweise für Programme verwandt, die sich nicht selbständig ablösen. Diese Option zwingt B<start-stop-daemon>, vor dem Start des Prozesses einen Fork durchzuführen, und zwingt diesen dann in den Hintergrund.
B<Warnung: start-stop-daemon> kann nicht den Rückgabewert überprüfen, falls der Prozess aus B<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.
=item B<--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 L<sd_notify(3)> festgelegt ist. Die folgenden Variablen werden unterstützt:
=over
=item B<READY=1>
Das Programm ist bereit, den Dienst zu leisten, daher kann sicher beendet werden.
=item B<EXTEND_TIMEOUT_USEC=>I<Anzahl>
Das Programm erbittet die Verlängerung der Zeitüberschreitung um I<Anzahl> Mikrosekunden. Dies wird die aktuelle Zeitüberschreitung auf den festgelegten Wert zurücksetzen.
=item B<ERRNO=>I<Nummer>
Das Programm beendete sich mit einem Fehler. Macht das gleiche und gibt die benutzerfreundliche Zeichenkette für den Wert von B<errno> aus.
=back
=item B<--notify-timeout> I<Zeitüberschreitung>
Setzt eine Zeitüberschreitung für die Option B<--notify-await> (seit Version 1.19.3). Wenn die Zeitüberschreitung erreicht wird, wird sich B<start-stop-daemon> mit einem Fehler-Code beenden und es wird auf keine Bereitschaftsbenachrichtigung gewartet. Die Vorgabe ist B<60> Sekunden.
=item B<-C>, B<--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 B<--background>.
=item B<-O>, B<--output> I<Pfadname>
Leitet B<stdout> und B<stderr> auf I<Pfadname> um, wenn der Daemon in den Hintergrund gezwungen wird (seit Version 1.20.6). Nur relevant bei Einsatz von B<--background>.
=item B<-N>, B<--nicelevel> I<Ganzzahl>
Dies ändert die Priorität des Prozesses, bevor er gestartet wird.
=item B<-P>, B<--procsched> I<Strategie>B<:>I<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 B<:> gefolgt von einem Wert angegeben wird. Die Standard-I<Priorität> beträgt 0. Die derzeit unterstützten Werte für die Strategie lauten B<other>, B<fifo> und B<rr>.
Diese Option könnte auf einigen Systemen, auf denen POSIX-Prozessauftragsplanung (Scheduling) nicht unterstützt wird, nichts durchführen.
=item B<-I>, B<--iosched> I<Klasse>B<:>I<Priorität>
Dies ändert die EA-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 B<:> gefolgt von einem Wert angegeben wird. Die Standard-I<Priorität> beträgt 4, außer I<Klasse> lautet B<idle>, dann beträgt sie immer 7. Die derzeit unterstützten Werte für die I<Klasse> lauten B<idle>, B<best-effort> und B<real-time>.
Diese Option könnte auf einigen Systemen, auf denen Linux-EA-Auftragsplanung (Scheduling) nicht unterstützt wird, nichts durchführen.
=item B<-k>, B<--umask> I<Maske>
Dies setzt die umask des Prozesses, bevor er gestartet wird (seit Version 1.13.22).
=item B<-m>, B<--make-pidfile>
Wird verwandt, wenn ein Programm gestartet wird, das keine eigene PID-Datei anlegt. Diese Option sorgt dafür, dass B<start-stop-daemon> die mit B<--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 B<--remove-pidfile> verwandt wird.
B<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 B<--background> sinnvoll.
=item B<--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 B<start-stop-daemon> die durch B<--pidfile> referenzierte Datei nach der Beendigung des Prozesses entfernt.
=item B<-v>, B<--verbose>
Gibt ausführliche informative Meldungen aus.
=back
=head1 RÜCKGABEWERT
=over
=item B<0>
Die angeforderte Aktion wurde durchgeführt. Falls B<--oknodo> angegeben wurde, kann es auch sein, dass nichts durchgeführt wurde. Das kann passieren, wenn B<--start> angegeben wurde und der passende Prozess bereits lief oder wenn B<--stop> angegeben wurde und es keinen passenden Prozess gab.
=item B<1>
Falls B<--oknodo> nicht angegeben war und nichts durchgeführt wurde.
=item B<2>
Falls B<--stop> und B<--retry> angegeben waren, aber das Ende des Plans erreicht wurde und die Prozesse noch liefen.
=item B<3>
Jeder andere Fehler.
=back
Bei der Verwendung des Befehls B<--status> werden die folgenden Statuscodes zurückgeliefert:
=over
=item B<0>
Programm läuft.
=item B<1>
Programm läuft nicht und die PID-Datei existiert.
=item B<3>
Programm läuft nicht.
=item B<4>
Programmstatus kann nicht bestimmt werden.
=back
=head1 BEISPIEL
Den Daemon B<food> starten, falls noch keiner läuft (ein Prozess mit Namen food, der als Benutzer food mit PID in food.pid läuft):
=over
start-stop-daemon --start --oknodo --user food --name food \
--pidfile %RUNSTATEDIR%/food.pid --startas /usr/sbin/food \
--chuid food -- --daemon
=back
B<SIGTERM> an B<food> schicken und bis zu fünf Sekunden auf sein Beenden warten:
=over
start-stop-daemon --stop --oknodo --user food --name food \
--pidfile %RUNSTATEDIR%/food.pid --retry 5
=back
Vorführung eines angepassten Plans zum Beenden von B<food>:
=over
start-stop-daemon --stop --oknodo --user food --name food \
--pidfile %RUNSTATEDIR%/food.pid --retry=TERM/30/KILL/5
=back
=head1 ÜBERSETZUNG
Die deutsche Übersetzung wurde 2004, 2006-2024 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.
|