]> granicus.if.org Git - apache/blob - docs/manual/stopping.html.de
Updates.
[apache] / docs / manual / stopping.html.de
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
7       -->
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" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
12 <script src="./style/scripts/prettify.js" type="text/javascript">
13 </script>
14
15 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
16 <body id="manual-page"><div id="page-header">
17 <p class="menu"><a href="./mod/">Module</a> | <a href="./mod/directives.html">Direktiven</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossar</a> | <a href="./sitemap.html">Seitenindex</a></p>
18 <p class="apache">Apache HTTP Server Version 2.5</p>
19 <img alt="" src="./images/feather.gif" /></div>
20 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
21 <div id="path">
22 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP-Server</a> &gt; <a href="http://httpd.apache.org/docs/">Dokumentation</a> &gt; <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Beenden und Neustarten</h1>
23 <div class="toplang">
24 <p><span>Verfügbare Sprachen: </span><a href="./de/stopping.html" title="Deutsch">&nbsp;de&nbsp;</a> |
25 <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
26 <a href="./es/stopping.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
27 <a href="./fr/stopping.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
28 <a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
29 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
30 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
31 </div>
32 <div class="outofdate">Diese Übersetzung ist möglicherweise
33             nicht mehr aktuell. Bitte prüfen Sie die englische Version auf
34             die neuesten Änderungen.</div>
35
36     <p>Dieses Dokument umfasst das Beenden und Neustarten des
37     Apache auf Unix-ähnlichen Systemen. Anwender von Windows NT, 2000
38     und XP sollten <a href="platform/windows.html#winsvc">Betreiben
39     des Apache als Dienst</a> lesen, während hingegen Anwender von
40     Windows 9x sowie ME <a href="platform/windows.html#wincons">Betreiben
41     des Apache als Konsolenanwendung</a> lesen sollten, um mehr Informationen
42     zur Handhabung des Apache auf diesen Systemen zu erhalten.</p>
43 </div>
44 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">Einleitung</a></li>
45 <li><img alt="" src="./images/down.gif" /> <a href="#term">Beenden</a></li>
46 <li><img alt="" src="./images/down.gif" /> <a href="#graceful">Unterbrechungsfreier Neustart</a></li>
47 <li><img alt="" src="./images/down.gif" /> <a href="#hup">Neustarten</a></li>
48 <li><img alt="" src="./images/down.gif" /> <a href="#race">Anhang: Signale und Wettkampfsituationen</a></li>
49 </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><ul class="seealso"><li><a href="#comments_section">Kommentare</a></li></ul></div>
50 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
51 <div class="section">
52 <h2><a name="introduction" id="introduction">Einleitung</a></h2>
53
54     <p>Um den Apache zu stoppen oder neu zu starten, müssen Sie
55     ein Signal an den laufenden <code class="program"><a href="./programs/httpd.html">httpd</a></code>-Prozess senden. Es gibt
56     zwei Möglichkeiten, diese Signale zu senden. Zum einen können
57     Sie den Unix-Befehl <code>kill</code> verwenden, um den Prozessen
58     direkt Signale zu senden. Sie werden feststellen, dass auf Ihrem
59     System mehrere <code class="program"><a href="./programs/httpd.html">httpd</a></code>-Programme laufen. Sie sollten
60     jedoch nicht jedem dieser Prozesse ein Signal senden, sondern nur dem
61     Elternprozess, dessen PID im <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> steht. Das heißt, Sie
62     sollten es niemals nötig haben, einem anderen Prozess, als dem
63     Elternprozess, ein Signal zu senden. Es gibt drei Signale, die Sie an den
64     Elternprozess senden können: <code><a href="#term">TERM</a></code>,
65     <code><a href="#hup">HUP</a></code> und
66     <code><a href="#graceful">USR1</a></code>, die nachfolgend beschrieben
67     werden.</p>
68
69     <p>Um dem Elternprozess ein Signal zu senden, verwenden Sie einen
70     Befehl wie z.B.:</p>
71
72     <div class="example"><p><code>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</code></p></div>
73
74     <p>Die zweite Methode, dem <code class="program"><a href="./programs/httpd.html">httpd</a></code>-Prozess zu
75     signalisieren, ist die Verwendung der <code>-k</code>-Befehlszeilenoptionen
76     <code>stop</code>, <code>restart</code> und <code>graceful</code>, wie
77     unten beschrieben. Dies sind Argumente des <code class="program"><a href="./programs/httpd.html">httpd</a></code>-Programms, es wird jedoch
78     empfohlen, sie unter Verwendung des Steuerskripts <code class="program"><a href="./programs/apachectl.html">apachectl</a></code> zu senden, welches diese
79     an <code class="program"><a href="./programs/httpd.html">httpd</a></code> durchreicht.</p>
80
81     <p>Nachdem Sie <code class="program"><a href="./programs/httpd.html">httpd</a></code> signalisiert haben, können Sie
82     dessen Fortschritt beobachten, indem Sie eingeben:</p>
83
84     <div class="example"><p><code>tail -f /usr/local/apache2/logs/error_log</code></p></div>
85
86     <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>
87 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
88 <div class="section">
89 <h2><a name="term" id="term">Beenden</a></h2>
90
91     <dl><dt>Signal: TERM</dt>
92       <dd><code>apachectl -k stop</code></dd>
93     </dl>
94
95     <p>Das Senden des <code>TERM</code>- oder <code>stop</code>-Signals an
96     den Elternprozess veranlasst diesen, sofort zu versuchen, alle seine
97     Kindprozesse zu beenden. Es kann einige Sekunden dauern, bis alle
98     Kindprozesse komplett beendet sind. Danach beendet sich der Elternprozess
99     selbst. Alle gerade bearbeiteten Anfragen werden abgebrochen.
100     Es werden keine weiteren Anfragen mehr bedient.</p>
101 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
102 <div class="section">
103 <h2><a name="graceful" id="graceful">Unterbrechungsfreier Neustart</a></h2>
104
105     <dl><dt>Signal: USR1</dt>
106       <dd><code>apachectl -k graceful</code></dd>
107     </dl>
108
109     <p>Das <code>USR1</code>- oder <code>graceful</code>-Signal
110     veranlasst den Elternprozess, die Kinder <em>anzuweisen</em>, sich
111     nach Abschluß ihrer momentanen bearbeiteten Anfrage zu beenden
112     (oder sich sofort zu beenden, wenn sie gerade keine Anfrage bedienen).
113     Der Elternprozess liest seine Konfigurationsdateien erneut ein und
114     öffnet seine Logdateien neu. Wenn ein Kindprozess stirbt,
115     ersetzt der Elternprozess ihn durch ein Kind der neuen
116     Konfigurations-<em>Generation</em>. Dieses beginnt sofort damit,
117     neue Anfragen zu bedienen.</p>
118
119     <div class="note">Auf bestimmten Plattformen, welche kein <code>USR1</code>
120     für einen unterbrechungsfreien Neustart erlauben, kann ein
121     alternatives Signal verwendet werden (wie z.B.
122     <code>WINCH</code>). Der Befehl <code>apachectl graceful</code>
123     sendet das jeweils richtige Signal für Ihre Platform.</div>
124
125     <p>Der Code ist dafür ausgelegt, stets die MPM-Direktiven
126     zur Prozesssteuerung zu beachten, so dass die Anzahl der Prozesse
127     und Threads, die zur Bedienung der Clients bereitstehen, während
128     des Neustarts auf die entsprechenden Werte gesetzt werden.
129     Weiterhin wird <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>
130     auf folgende Art und Weise interpretiert: Wenn nach einer Sekunde
131     nicht mindestens <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>
132     neue Kindprozesse erstellt wurden, dann werden, um den Durchsatz zu
133     beschleunigen, entsprechend weitere erstellt. Auf diese Weise versucht
134     der Code sowohl die Anzahl der Kinder entsprechend der Serverlast
135     anzupassen als auch Ihre Wünsche hinsichtlich des Parameters
136     <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> zu
137     berücksichtigen.</p>
138
139     <p>Benutzer von <code class="module"><a href="./mod/mod_status.html">mod_status</a></code> werden feststellen,
140     dass die Serverstatistiken <strong>nicht</strong> auf Null
141     zurückgesetzt werden, wenn ein <code>USR1</code> gesendet
142     wurde. Der Code wurde so geschrieben, dass sowohl die Zeit minimiert
143     wird, in der der Server nicht in der Lage ist, neue Anfragen zu
144     bedienen (diese werden vom Betriebssystem in eine Warteschlange
145     gestellt, so dass sie auf keinen Fall verloren gehen) als auch
146     Ihre Parameter zur Feinabstimmung berücksichtigt werden.
147     Um dies zu erreichen, muss die <em>Statustabelle</em> (Scoreboard),
148     die dazu verwendet wird, alle Kinder über mehrere Generationen
149     zu verfolgen, erhalten bleiben.</p>
150
151     <p>Das Statusmodul benutzt außerdem ein <code>G</code>, um
152     diejenigen Kinder zu kennzeichen, die noch immer Anfragen bedienen,
153     welche gestartet wurden, bevor ein unterbrechungsfreier Neustart
154     veranlaßt wurde.</p>
155
156     <p>Derzeit gibt es keine Möglichkeit für ein
157     Log-Rotationsskript, das <code>USR1</code> verwendet, sicher
158     festzustellen, dass alle Kinder, die in ein vor dem Neustart
159     geöffnetes Log schreiben, beendet sind. Wir schlagen vor, dass
160     Sie nach dem Senden des Signals <code>USR1</code> eine angemessene
161     Zeitspanne warten, bevor Sie das alte Log anfassen. Wenn beispielsweise
162     die meisten Ihrer Zugriffe bei Benutzern mit niedriger Bandbreite
163     weniger als 10 Minuten für eine vollständige Antwort
164     benötigen, dann könnten Sie 15 Minuten warten, bevor Sie auf
165     das alte Log zugreifen.</p>
166
167     <div class="note">Wenn Ihre Konfigurationsdatei Fehler enthält, während
168     Sie einen Neustart anweisen, dann wird Ihr Elternprozess nicht neu starten,
169     sondern sich mit einem Fehler beenden. Im Falle eines unterbrechungsfreien
170     Neustarts läßt er die Kinder weiterlaufen, wenn er sich beendet.
171     (Dies sind die Kinder, die sich "sanft beenden", indem sie ihre letzte
172     Anfrage erledigen.) Das verursacht Probleme, wenn Sie versuchen,
173     den Server neu zu starten -- er ist nicht in der Lage, sich an die Ports zu
174     binden, an denen er lauschen soll. Bevor Sie einen Neustart
175     durchführen, können Sie die Syntax der Konfigurationsdateien
176     mit dem Befehlszeilenargument <code>-t</code> überprüfen
177     (siehe auch <code class="program"><a href="./programs/httpd.html">httpd</a></code>). Das garantiert
178     allerdings nicht, dass der Server korrekt starten wird. Um sowohl die
179     Syntax als auch die Semantik der Konfigurationsdateien zu prüfen,
180     können Sie versuchen, <code class="program"><a href="./programs/httpd.html">httpd</a></code> als nicht-root-Benutzer
181     zu starten. Wenn dabei keine Fehler auftreten, wird er versuchen, seine
182     Sockets und Logdateien zu öffnen und fehlschlagen, da er nicht root
183     ist (oder weil sich der gegenwärtig laufende <code class="program"><a href="./programs/httpd.html">httpd</a></code>
184     bereits diese Ports gebunden hat). Wenn er aus einem anderen Grund
185     fehlschlägt, dann liegt wahrscheinlich ein Konfigurationsfehler vor.
186     Der Fehler sollte behoben werden, bevor der unterbrechungsfreie Neustart
187     angewiesen wird.</div>
188 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
189 <div class="section">
190 <h2><a name="hup" id="hup">Neustarten</a></h2>
191
192     <dl><dt>Signal: HUP</dt>
193       <dd><code>apachectl -k restart</code></dd>
194     </dl>
195
196     <p>Das Senden des Signals <code>HUP</code> oder <code>restart</code>
197     veranlaßt den Elternprozess, wie bei <code>TERM</code> alle seine
198     Kinder zu beenden. Der Elternprozess beendet sich jedoch nicht. Er liest
199     seine Konfigurationsdateien neu ein und öffnet alle Logdateien
200     erneut. Dann erzeugt er einen neuen Satz Kindprozesse und setzt die
201     Bedienung von Zugriffen fort.</p>
202
203     <p>Benutzer von <code class="module"><a href="./mod/mod_status.html">mod_status</a></code> werden feststellen, dass
204     die Serverstatistiken auf Null gesetzt werden, wenn ein <code>HUP</code>
205     gesendet wurde.</p>
206
207     <div class="note">Wenn Ihre Konfigurationsdatei einen Fehler enthält,
208     während Sie einen Neustart anweisen, dann wird Ihr Elternprozess
209     nicht neu starten, sondern sich mit einem Fehler beenden. Lesen Sie oben,
210     wie Sie das vermeiden können.</div>
211 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
212 <div class="section">
213 <h2><a name="race" id="race">Anhang: Signale und Wettkampfsituationen</a></h2>
214
215     <p>Vor der Version 1.2b9 des Apache existierten verschiedene
216     <em>Wettkampfsituationen</em> (race conditions), die den Neustart und
217     die Signale beeinflußt haben. (Einfach erklärt ist eine
218     Wettkampfsituation ein zeitabhängiges Problem - wenn
219     etwas zum falschen Zeitpunkt erfolgt oder Dinge in der falschen
220     Reihenfolge passieren, ist unerwartetes Verhalten die Folge. Wenn die
221     gleichen Dinge zur richtigen Zeit geschehen, funktioniert alles korrekt.)
222     Bei Architekturen mit dem "richtigen" Funktionsumfang
223     haben wir so viele eliminiert wie wir nur konnten. Dennoch
224     sollte beachtet werden, dass noch immer Wettkampfsituationen auf
225     bestimmten Architekturen existieren.</p>
226
227     <p>Bei Architekturen, die ein <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code> auf Platte verwenden,
228     besteht die Gefahr, dass die Statustabelle beschädigt wird.
229     Das kann zu "bind: Address already in use" ("bind: Adresse wird
230     bereits verwendet", nach einem <code>HUP</code>) oder "long lost
231     child came home!" ("Der verlorene Sohn ist heimgekehrt", nach einem
232     <code>USR1</code>) führen. Ersteres ist ein schwerer Fehler,
233     wärend letzteres lediglich bewirkt, dass der Server einen Eintrag
234     in der Statustabelle verliert. So kann es ratsam sein, unterbrechungsfreie
235     Neustarts zusammen mit einem gelegentlichen harten Neustart zu verwenden.
236     Diese Probleme lassen sich nur sehr schwer umgehen, aber
237     glücklicherweise benötigen die meisten Architekturen keine
238     Statustabelle in Form einer Datei. Bitte lesen Sie für Architekturen,
239     die sie benötigen, die Dokumentation zu <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code>.</p>
240
241     <p>Alle Architekturen haben in jedem Kindprozess eine kleine
242     Wettkampfsituation, welche die zweite und nachfolgende Anfragen
243     einer persistenten HTTP-Verbindung (KeepAlive) umfaßt. Der Prozess
244     kann nach dem Lesen der Anfragezeile aber vor dem Lesen der Anfrage-Header
245     enden. Es existiert eine Korrektur, die für 1.2 zu spät kam.
246     Theoretisch sollte das kein Problem darstellen, da
247     der KeepAlive-Client derartige Ereignisse aufgrund von
248     Netzwerk-Latenzzeiten und Auszeiten des Servers erwarten sollte.
249     In der Praxis scheint keiner von beiden beeinflußt zu werden
250     -- in einem Testfall wurde der Server zwanzig mal
251     pro Sekunde neu gestartet, während Clients das Angebot abgegrast
252     haben, ohne kaputte Bilder oder leere Dokumente zu erhalten.</p>
253 </div></div>
254 <div class="bottomlang">
255 <p><span>Verfügbare Sprachen: </span><a href="./de/stopping.html" title="Deutsch">&nbsp;de&nbsp;</a> |
256 <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
257 <a href="./es/stopping.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
258 <a href="./fr/stopping.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
259 <a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
260 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
261 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
262 </div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Kommentare</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
263 <script type="text/javascript"><!--//--><![CDATA[//><!--
264 var comments_shortname = 'httpd';
265 var comments_identifier = 'http://httpd.apache.org/docs/trunk/stopping.html';
266 (function(w, d) {
267     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
268         d.write('<div id="comments_thread"><\/div>');
269         var s = d.createElement('script');
270         s.type = 'text/javascript';
271         s.async = true;
272         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
273         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
274     }
275     else {
276         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
277     }
278 })(window, document);
279 //--><!]]></script></div><div id="footer">
280 <p class="apache">Copyright 2012 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>
281 <p class="menu"><a href="./mod/">Module</a> | <a href="./mod/directives.html">Direktiven</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossar</a> | <a href="./sitemap.html">Seitenindex</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
282 if (typeof(prettyPrint) !== 'undefined') {
283     prettyPrint();
284 }
285 //--><!]]></script>
286 </body></html>