1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"><head><!--
4
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5
This file is generated from xml source: DO NOT EDIT
6
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8
<title>Beenden und Neustarten - Apache HTTP Server</title>
9
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12
<link href="./images/favicon.ico" rel="shortcut icon" /></head>
13
<body id="manual-page"><div id="page-header">
14
<p class="menu"><a href="./mod/">Module</a> | <a href="./mod/directives.html">Direktiven</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossar</a> | <a href="./sitemap.html">Seitenindex</a></p>
15
<p class="apache">Apache HTTP Server Version 2.2</p>
16
<img alt="" src="./images/feather.gif" /></div>
17
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
19
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP-Server</a> > <a href="http://httpd.apache.org/docs/">Dokumentation</a> > <a href="./">Version 2.2</a></div><div id="page-content"><div id="preamble"><h1>Beenden und Neustarten</h1>
21
<p><span>Verf�gbare Sprachen: </span><a href="./de/stopping.html" title="Deutsch"> de </a> |
22
<a href="./en/stopping.html" hreflang="en" rel="alternate" title="English"> en </a> |
23
<a href="./es/stopping.html" hreflang="es" rel="alternate" title="Espa�ol"> es </a> |
24
<a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
25
<a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
27
<div class="outofdate">Diese �bersetzung ist m�glicherweise
28
nicht mehr aktuell. Bitte pr�fen Sie die englische Version auf
29
die neuesten �nderungen.</div>
31
<p>Dieses Dokument umfasst das Beenden und Neustarten des
32
Apache auf Unix-�hnlichen Systemen. Anwender von Windows NT, 2000
33
und XP sollten <a href="platform/windows.html#winsvc">Betreiben
34
des Apache als Dienst</a> lesen, w�hrend hingegen Anwender von
35
Windows 9x sowie ME <a href="platform/windows.html#wincons">Betreiben
36
des Apache als Konsolenanwendung</a> lesen sollten, um mehr Informationen
37
zur Handhabung des Apache auf diesen Systemen zu erhalten.</p>
39
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">Einleitung</a></li>
40
<li><img alt="" src="./images/down.gif" /> <a href="#term">Beenden</a></li>
41
<li><img alt="" src="./images/down.gif" /> <a href="#graceful">Unterbrechungsfreier Neustart</a></li>
42
<li><img alt="" src="./images/down.gif" /> <a href="#hup">Neustarten</a></li>
43
<li><img alt="" src="./images/down.gif" /> <a href="#gracefulstop">R�cksichtsvolles Beenden</a></li>
44
<li><img alt="" src="./images/down.gif" /> <a href="#race">Anhang: Signale und Wettlaufsituationen</a></li>
45
</ul><h3>Siehe auch</h3><ul class="seealso"><li><code class="program"><a href="./programs/httpd.html">httpd</a></code></li><li><code class="program"><a href="./programs/apachectl.html">apachectl</a></code></li></ul></div>
46
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
48
<h2><a name="introduction" id="introduction">Einleitung</a></h2>
50
<p>Um den Apache zu stoppen oder neu zu starten, m�ssen Sie
51
ein Signal an den laufenden <code class="program"><a href="./programs/httpd.html">httpd</a></code>-Prozess senden. Es gibt
52
zwei M�glichkeiten, diese Signale zu senden. Zum einen k�nnen
53
Sie den Unix-Befehl <code>kill</code> verwenden, um den Prozessen
54
direkt Signale zu senden. Sie werden feststellen, dass auf Ihrem
55
System mehrere <code class="program"><a href="./programs/httpd.html">httpd</a></code>-Programme laufen. Sie sollten
56
jedoch nicht jedem dieser Prozesse ein Signal senden, sondern nur dem
57
Elternprozess, dessen PID im <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> steht. Das hei�t, Sie
58
sollten es niemals n�tig haben, einem anderen Prozess, als dem
59
Elternprozess, ein Signal zu senden. Es gibt drei Signale, die Sie an den
60
Elternprozess senden k�nnen: <code><a href="#term">TERM</a></code>,
61
<code><a href="#hup">HUP</a></code> und
62
<code><a href="#graceful">USR1</a></code>, die nachfolgend beschrieben
65
<p>Um dem Elternprozess ein Signal zu senden, verwenden Sie einen
68
<div class="example"><p><code>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</code></p></div>
70
<p>Die zweite Methode, dem <code class="program"><a href="./programs/httpd.html">httpd</a></code>-Prozess zu
71
signalisieren, ist die Verwendung der <code>-k</code>-Befehlszeilenoptionen
72
<code>stop</code>, <code>restart</code>, <code>graceful</code> und
73
<code>graceful-stop</code>, wie unten beschrieben. Dies sind Argumente des
74
<code class="program"><a href="./programs/httpd.html">httpd</a></code>-Programms, es wird jedoch empfohlen, sie unter
75
Verwendung des Steuerskripts <code class="program"><a href="./programs/apachectl.html">apachectl</a></code> zu senden,
76
welches diese an <code class="program"><a href="./programs/httpd.html">httpd</a></code> durchreicht.</p>
78
<p>Nachdem Sie <code class="program"><a href="./programs/httpd.html">httpd</a></code> signalisiert haben, k�nnen Sie
79
dessen Fortschritt beobachten, indem Sie eingeben:</p>
81
<div class="example"><p><code>tail -f /usr/local/apache2/logs/error_log</code></p></div>
83
<p>Passen Sie diese Beispiele entsprechend Ihren <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code>- und <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>-Einstellungen an.</p>
84
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
86
<h2><a name="term" id="term">Beenden</a></h2>
88
<dl><dt>Signal: TERM</dt>
89
<dd><code>apachectl -k stop</code></dd>
92
<p>Das Senden des <code>TERM</code>- oder <code>stop</code>-Signals an
93
den Elternprozess veranlasst diesen, sofort zu versuchen, alle seine
94
Kindprozesse zu beenden. Es kann einige Sekunden dauern, bis alle
95
Kindprozesse komplett beendet sind. Danach beendet sich der Elternprozess
96
selbst. Alle gerade bearbeiteten Anfragen werden abgebrochen.
97
Es werden keine weiteren Anfragen mehr bedient.</p>
98
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
100
<h2><a name="graceful" id="graceful">Unterbrechungsfreier Neustart</a></h2>
102
<dl><dt>Signal: USR1</dt>
103
<dd><code>apachectl -k graceful</code></dd>
106
<p>Das <code>USR1</code>- oder <code>graceful</code>-Signal
107
veranlasst den Elternprozess, die Kinder <em>anzuweisen</em>, sich
108
nach Abschlu� ihrer momentanen bearbeiteten Anfrage zu beenden
109
(oder sich sofort zu beenden, wenn sie gerade keine Anfrage bedienen).
110
Der Elternprozess liest seine Konfigurationsdateien erneut ein und
111
�ffnet seine Logdateien neu. Wenn ein Kindprozess stirbt,
112
ersetzt der Elternprozess ihn durch ein Kind der neuen
113
Konfigurations-<em>Generation</em>. Dieses beginnt sofort damit,
114
neue Anfragen zu bedienen.</p>
116
<p>Der Code ist daf�r ausgelegt, stets die MPM-Direktiven
117
zur Prozesssteuerung zu beachten, so dass die Anzahl der Prozesse
118
und Threads, die zur Bedienung der Clients bereitstehen, w�hrend
119
des Neustarts auf die entsprechenden Werte gesetzt werden.
120
Weiterhin wird <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>
121
auf folgende Art und Weise interpretiert: Wenn nach einer Sekunde
122
nicht mindestens <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>
123
neue Kindprozesse erstellt wurden, dann werden, um den Durchsatz zu
124
beschleunigen, entsprechend weitere erstellt. Auf diese Weise versucht
125
der Code sowohl die Anzahl der Kinder entsprechend der Serverlast
126
anzupassen als auch Ihre W�nsche hinsichtlich des Parameters
127
<code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> zu
130
<p>Benutzer von <code class="module"><a href="./mod/mod_status.html">mod_status</a></code> werden feststellen,
131
dass die Serverstatistiken <strong>nicht</strong> auf Null
132
zur�ckgesetzt werden, wenn ein <code>USR1</code> gesendet
133
wurde. Der Code wurde so geschrieben, dass sowohl die Zeit minimiert
134
wird, in der der Server nicht in der Lage ist, neue Anfragen zu
135
bedienen (diese werden vom Betriebssystem in eine Warteschlange
136
gestellt, so dass sie auf keinen Fall verloren gehen) als auch
137
Ihre Parameter zur Feinabstimmung ber�cksichtigt werden.
138
Um dies zu erreichen, muss die <em>Statustabelle</em> (Scoreboard),
139
die dazu verwendet wird, alle Kinder �ber mehrere Generationen
140
zu verfolgen, erhalten bleiben.</p>
142
<p>Das Statusmodul benutzt au�erdem ein <code>G</code>, um
143
diejenigen Kinder zu kennzeichen, die noch immer Anfragen bedienen,
144
welche gestartet wurden, bevor ein unterbrechungsfreier Neustart
147
<p>Derzeit gibt es keine M�glichkeit f�r ein
148
Log-Rotationsskript, das <code>USR1</code> verwendet, sicher
149
festzustellen, dass alle Kinder, die in ein vor dem Neustart
150
ge�ffnetes Log schreiben, beendet sind. Wir schlagen vor, dass
151
Sie nach dem Senden des Signals <code>USR1</code> eine angemessene
152
Zeitspanne warten, bevor Sie das alte Log anfassen. Wenn beispielsweise
153
die meisten Ihrer Zugriffe bei Benutzern mit niedriger Bandbreite
154
weniger als 10 Minuten f�r eine vollst�ndige Antwort
155
ben�tigen, dann k�nnten Sie 15 Minuten warten, bevor Sie auf
156
das alte Log zugreifen.</p>
158
<div class="note">Wenn Ihre Konfigurationsdatei Fehler enth�lt, w�hrend
159
Sie einen Neustart anweisen, dann wird Ihr Elternprozess nicht neu starten,
160
sondern sich mit einem Fehler beenden. Im Falle eines unterbrechungsfreien
161
Neustarts l��t er die Kinder weiterlaufen, wenn er sich beendet.
162
(Dies sind die Kinder, die sich "sanft beenden", indem sie ihre letzte
163
Anfrage erledigen.) Das verursacht Probleme, wenn Sie versuchen,
164
den Server neu zu starten -- er ist nicht in der Lage, sich an die Ports zu
165
binden, an denen er lauschen soll. Bevor Sie einen Neustart
166
durchf�hren, k�nnen Sie die Syntax der Konfigurationsdateien
167
mit dem Befehlszeilenargument <code>-t</code> �berpr�fen
168
(siehe auch <code class="program"><a href="./programs/httpd.html">httpd</a></code>). Das garantiert
169
allerdings nicht, dass der Server korrekt starten wird. Um sowohl die
170
Syntax als auch die Semantik der Konfigurationsdateien zu pr�fen,
171
k�nnen Sie versuchen, <code class="program"><a href="./programs/httpd.html">httpd</a></code> als nicht-root-Benutzer
172
zu starten. Wenn dabei keine Fehler auftreten, wird er versuchen, seine
173
Sockets und Logdateien zu �ffnen und fehlschlagen, da er nicht root
174
ist (oder weil sich der gegenw�rtig laufende <code class="program"><a href="./programs/httpd.html">httpd</a></code>
175
bereits diese Ports gebunden hat). Wenn er aus einem anderen Grund
176
fehlschl�gt, dann liegt wahrscheinlich ein Konfigurationsfehler vor.
177
Der Fehler sollte behoben werden, bevor der unterbrechungsfreie Neustart
178
angewiesen wird.</div>
179
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
180
<div class="section">
181
<h2><a name="hup" id="hup">Neustarten</a></h2>
183
<dl><dt>Signal: HUP</dt>
184
<dd><code>apachectl -k restart</code></dd>
187
<p>Das Senden des Signals <code>HUP</code> oder <code>restart</code>
188
veranla�t den Elternprozess, wie bei <code>TERM</code> alle seine
189
Kinder zu beenden. Der Elternprozess beendet sich jedoch nicht. Er liest
190
seine Konfigurationsdateien neu ein und �ffnet alle Logdateien
191
erneut. Dann erzeugt er einen neuen Satz Kindprozesse und setzt die
192
Bedienung von Zugriffen fort.</p>
194
<p>Benutzer von <code class="module"><a href="./mod/mod_status.html">mod_status</a></code> werden feststellen, dass
195
die Serverstatistiken auf Null gesetzt werden, wenn ein <code>HUP</code>
198
<div class="note">Wenn Ihre Konfigurationsdatei einen Fehler enth�lt,
199
w�hrend Sie einen Neustart anweisen, dann wird Ihr Elternprozess
200
nicht neu starten, sondern sich mit einem Fehler beenden. Lesen Sie oben,
201
wie Sie das vermeiden k�nnen.</div>
202
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
203
<div class="section">
204
<h2><a name="gracefulstop" id="gracefulstop">R�cksichtsvolles Beenden</a></h2>
207
<dt>Signal: WINCH</dt>
208
<dd><code>apachectl -k gracefull stop</code></dd>
211
<p>Das <code>WINCH</code>- oder <code>graceful-stop</code>-Signal
212
veranlasst den Elternprozess, die Kinder <em>anzuweisen</em>, sich nach
213
Abschlu� ihrer momentan bearbeiteten Anfrage zu beenden (oder sich
214
sofort zu beenden, wenn sie gerade nichts bedienen). Der Elternprozess
215
entfernt dann sein <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> und
216
stellt das Lauschen auf allen Ports ein. Er l�uft weiter und
217
beobachtet alle Kindprozesse, die noch Anfragen bearbeiten. Sobald alle
218
Kindprozesse fertig sind und beendet haben oder die mit <code class="directive"><a href="./mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code> definierte
219
Zeit�berschreitung erreicht wurde, beendet sich der Elternprozess
220
ebenfalls. Jedem verbliebenen Kindprozess wird beim Erreichen der
221
Zeit�berschreitung das <code>TERM</code>-Signal gesendet, um diesen
222
zum Beenden zu zwingen.</p>
224
<p>Ein <code>TERM</code>-Signal beendet den Elternprozess und alle
225
Kindprozesse unverz�glich, wenn sie sich im "graceful"-Status
226
<span class="transnote">(<em>Anm.d.�.:</em> w�rtl. "gn�diger" Status)</span> befinden. Da jedoch das
227
<code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>dann schon gel�scht
228
ist, werden Sie dieses Signal nicht mehr mit <code>apachectl</code> oder
229
<code>httpd</code> senden k�nnen.</p>
231
<div class="note"><p>Das Signal <code>graceful-stop</code> erm�glicht Ihnen den
232
Betrieb mehrerer identisch konfigurierter Instanzen von <code>httpd</code>
233
zur gleichen Zeit. Dies ist eine m�chtige Funktionalit�t bei der
234
Aufr�stung des Apache. Sie kann jedoch bei einigen Konfigurationen
235
auch zur gegenseitigen Blockierung und zu Wettlaufsituationen
238
<p>Es ist besonders darauf zu achten, dass auf Festplatte gespeicherte
239
Dateien wie <code class="directive"><a href="./mod/core.html#lockfile">Lockfile</a></code> und <code class="directive"><a href="./mod/mod_cgid.html#scriptsock">ScriptSock</a></code> die Server-PID enthalten und ohne
240
Probleme nebeneinander existieren m�ssen. Wann auch immer eine
241
Konfigurationsanweisung, ein Drittanbieter-Modul oder ein persistentes
242
CGI-Skript irgend eine Sperre oder eine Statusdatei auf Festplatte
243
speichert, muss besonders darauf geachtet werden, dass mehrere
244
gleichzeitig laufende Instanzen von <code>httpd</code> sich nicht
245
gegenseitig die Dateien zerst�ren.</p>
247
<p>Sie sollten ebenfalls vorsichtig mit m�glichen Wettlaufsituationen
248
sein, wie beispielsweise der Verwendung von weitergeleiteter
249
Protokollierung nach der Art von <code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code>. Mehrere
250
gleichzeitig laufende Instanzen von <code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code>, die
251
versuchen, die gleichen Protokolldateien zu rotieren, k�nnen sich
252
gegenseitig die Protokolldateien zerst�ren.</p></div>
254
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
255
<div class="section">
256
<h2><a name="race" id="race">Anhang: Signale und Wettlaufsituationen</a></h2>
258
<p>Vor der Version 1.2b9 des Apache existierten verschiedene
259
<em>Wettlaufsituationen</em> <span class="transnote">(<em>Anm.d.�.:</em> engl.: race
260
conditions)</span>, die den Neustart und die Signale beeinflu�t
261
haben (einfach gesagt, eine Wettlaufstituation ist ein zeitabh�ngiges
262
Problem - wenn etwas zum falschen Zeitpunkt oder in der falschen
263
Reihenfolge geschieht, kommt es zu nicht erw�nschten Ergebnissen.
264
Geschehen die gleichen Dinge zur rechten Zeit, ist alles in Ordnung). Bei
265
Architekturen mit dem "richtigen" <span class="transnote">(<em>Anm.d.�.:</em> im Sinne von
266
"geeignet")</span> Funktionsumfang haben wir so viele eliminiert wie
267
wir nur konnten. Dennoch sollte beachtet werden, dass noch immer
268
Wettlaufsituationen auf bestimmten Architekturen existieren.</p>
270
<p>Bei Architekturen, die ein <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code> auf Platte verwenden,
271
kann die Statustabelle besch�digt werden.
272
Das kann zu "bind: Address already in use" ("bind: Adresse wird
273
bereits verwendet", nach einem <code>HUP</code>) oder "long lost
274
child came home!" ("Der verlorene Sohn ist heimgekehrt", nach einem
275
<code>USR1</code>) f�hren. Ersteres ist ein schwerer Fehler,
276
w�rend letzteres lediglich bewirkt, dass der Server einen Eintrag
277
in der Statustabelle verliert. So kann es ratsam sein, unterbrechungsfreie
278
Neustarts zusammen mit einem gelegentlichen harten Neustart zu verwenden.
279
Diese Probleme lassen sich nur sehr schwer umgehen, aber
280
gl�cklicherweise ben�tigen die meisten Architekturen keine
281
Statustabelle in Form einer Datei. Bitte lesen Sie f�r Architekturen,
282
die sie ben�tigen, die Dokumentation zu <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code>.</p>
284
<p>Alle Architekturen haben in jedem Kindprozess eine kleine
285
Wettlaufsituation, welche die zweite und nachfolgende Anfragen
286
einer persistenten HTTP-Verbindung (KeepAlive) umfa�t. Der Prozess
287
kann nach dem Lesen der Anfragezeile aber vor dem Lesen der Anfrage-Header
288
enden. Es existiert eine Korrektur, die f�r 1.2 zu sp�t kam.
289
Theoretisch sollte das kein Problem darstellen, da
290
der KeepAlive-Client derartige Ereignisse aufgrund von
291
Netzwerk-Latenzzeiten und Auszeiten des Servers erwarten sollte.
292
In der Praxis scheint keiner von beiden beeinflu�t zu werden
293
-- in einem Testfall wurde der Server zwanzig mal
294
pro Sekunde neu gestartet, w�hrend Clients das Angebot abgegrast
295
haben, ohne kaputte Bilder oder leere Dokumente zu erhalten.</p>
297
<div class="bottomlang">
298
<p><span>Verf�gbare Sprachen: </span><a href="./de/stopping.html" title="Deutsch"> de </a> |
299
<a href="./en/stopping.html" hreflang="en" rel="alternate" title="English"> en </a> |
300
<a href="./es/stopping.html" hreflang="es" rel="alternate" title="Espa�ol"> es </a> |
301
<a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
302
<a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
303
</div><div id="footer">
304
<p class="apache">Copyright 2006 The Apache Software Foundation.<br />Lizenziert unter der <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
305
<p class="menu"><a href="./mod/">Module</a> | <a href="./mod/directives.html">Direktiven</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossar</a> | <a href="./sitemap.html">Seitenindex</a></p></div>
b'\\ No newline at end of file'