bottleneck testcase based on rubbos
[bottlenecks.git] / rubbos / app / httpd-2.0.64 / docs / manual / stopping.html.ja.utf8
1 <?xml version="1.0" encoding="UTF-8"?>
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="ja" xml:lang="ja"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>停止と再起動 - Apache HTTP サーバ</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/">モジュール</a> | <a href="./mod/directives.html">ディレクティブ</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">用語</a> | <a href="./sitemap.html">サイトマップ</a></p>
15 <p class="apache">Apache HTTP サーバ バージョン 2.0</p>
16 <img alt="" src="./images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
18 <div id="path">
19 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP サーバ</a> &gt; <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> &gt; <a href="./">バージョン 2.0</a></div><div id="page-content"><div id="preamble"><h1>停止と再起動</h1>
20 <div class="toplang">
21 <p><span>Available Languages: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
22 <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
23 <a href="./es/stopping.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
24 <a href="./ja/stopping.html" title="Japanese">&nbsp;ja&nbsp;</a> |
25 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
26 <a href="./ru/stopping.html" hreflang="ru" rel="alternate" title="Russian">&nbsp;ru&nbsp;</a> |
27 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
28 </div>
29 <div class="outofdate">This translation may be out of date. Check the
30             English version for recent changes.</div>
31
32     <p>この文書では Unix に類似したシステムでの
33     Apache の停止と再起動について扱っています。
34     Windows NT, 2000, XP ユーザは<a href="platform/windows.html#winsvc">サービスとして
35     Apache を実行する</a>で、Windows 9x, MEユーザは<a href="platform/windows.html#wincons">コンソールアプリケーションとして
36     Apache を実行する</a>で、
37     これらのプラットホームでの使用方法をご覧下さい。</p>
38 </div>
39 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">イントロダクション</a></li>
40 <li><img alt="" src="./images/down.gif" /> <a href="#term">急な停止</a></li>
41 <li><img alt="" src="./images/down.gif" /> <a href="#graceful">緩やかな再起動</a></li>
42 <li><img alt="" src="./images/down.gif" /> <a href="#hup">急な再起動</a></li>
43 <li><img alt="" src="./images/down.gif" /> <a href="#race">付録: シグナルと競合状態</a></li>
44 </ul><h3>参照</h3><ul class="seealso"><li><a href="programs/httpd.html">httpd</a></li><li><a href="programs/apachectl.html">apachectl</a></li></ul></div>
45 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
46 <div class="section">
47 <h2><a name="introduction" id="introduction">イントロダクション</a></h2>
48
49     <p>Apache を停止したり再起動したりするためには、実行されている
50     <code>httpd</code> プロセスにシグナルを送る必要があります。
51     シグナルを送るには二つの方法があります。
52     一つ目はプロセスに直接シグナルを送る unix の <code>kill</code>
53     コマンドを使用する方法です。
54     システムを見ればたくさんの <code>httpd</code> が
55     実行されているのに気が付くでしょうが、シグナルを送るのは
56     親プロセスだけで、それ以外の個々のプロセスには
57     シグナルを送らないで下さい。その親プロセスの pid は
58     <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>
59     に書かれています。これはつまり、親以外のプロセスに
60     シグナルを送る必要すらない、ということです。
61     親プロセスに送ることができる 3 種類のシグナルがあります:
62     <code><a href="#term">TERM</a></code>,
63     <code><a href="#hup">HUP</a></code>, 
64     <code><a href="#graceful">USR1</a></code>
65     です。これらの説明については続きをご覧下さい。</p>
66
67     <p>親プロセスにシグナルを送るには、
68     次のようなコマンドを発行して下さい:</p>
69
70 <div class="example"><p><code>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</code></p></div>
71
72     <p><code>httpd</code> プロセスにシグナルを送る 2 番目の方法は
73     <code>-k</code> というコマンドライン引数を使用することです。
74     下で説明されているように、<code>stop</code>, <code>restart</code>, 
75     <code>graceful</code> を指定できます。
76     これらは <a href="programs/httpd.html">httpd</a> の引数ですが、
77     制御用のスクリプト <a href="programs/apachectl.html">apachectl</a> を
78     使うことをお薦めします。<a href="programs/apachectl.html">apachectl</a> はそれらの引数をそのまま
79     <code>httpd</code> に渡します。</p>
80
81     <p><code>httpd</code> にシグナルを送った後、
82     実行状況を次のコマンドで読むことができます:</p>
83
84 <div class="example"><p><code>tail -f /usr/local/apache2/logs/error_log</code></p></div>
85     <p>ここに挙げた例は、各自の
86     <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code>
87     と
88     <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>
89     の設定に適合するように適宜修正して下さい。</p>
90 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
91 <div class="section">
92 <h2><a name="term" id="term">急な停止</a></h2>
93
94 <dl><dt>シグナル: TERM</dt>
95 <dd><code>apachectl -k stop</code></dd>
96 </dl>
97
98     <p><code>TERM</code> あるいは <code>stop</code> 
99     シグナルを親プロセスに送ると、即座に子プロセス全てを kill しようとします。
100     子プロセスを完全に kill し終わるまでに数秒かかるかもしれません。
101     その後、親プロセス自身が終了します。
102     処理中のリクエストは全て停止され、もはやリクエストに対する
103     応答はされません。</p>
104 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
105 <div class="section">
106 <h2><a name="graceful" id="graceful">緩やかな再起動</a></h2>
107
108 <dl><dt>シグナル: USR1</dt>
109 <dd><code>apachectl -k graceful</code></dd>
110 </dl>
111
112     <p>親プロセスは <code>USR1</code> あるいは <code>graceful</code>
113     シグナルを受け取ると、子プロセスに現在のリクエストの処理の後に終了する
114     (あるいは何もしていなければすぐに終了する)
115     ように<em>助言</em>します。
116     親プロセスは設定ファイルを再読込して、ログファイルを開き直します。
117     子プロセスが徐々になくなるに従って、
118     新しい<em>世代</em>の設定による子プロセスに置き換えていきます。
119     そして、これらが新たなリクエストに即座に応答し始めます。</p>
120
121     <div class="note">特定のプラットホームでは <code>USR1</code>
122     を緩やかな再起動のために使うことができませんが、代わりのシグナル
123     (例えば WINCH) が使用できるでしょう。
124     <code>apachectl graceful</code>
125     というコマンドはプラットホームに合ったシグナルを送ります。</div>
126
127     <p>このコードは常に
128     MPM のプロセス制御ディレクティブの設定を重視しますので、
129     クライアントのリクエストを扱うプロセスとスレッドの数を再起動の処理中も
130     適切な値に維持されます。。また、次のようにして
131     <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>
132     を守ります:
133     少なくとも 1 秒後に <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> 個の新しい子プロセスが
134     生成されていなければ、その数になるように適宜プロセスを生成します。
135     この挙動は現在の負荷に対して適切な子プロセスの数と
136     <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> パラメータでの
137     希望の数の両方を維持しようとしています。</p>
138
139     <p><code class="module"><a href="./mod/mod_status.html">mod_status</a></code> を
140     使用している場合は、<code>USR1</code> シグナルが送られた際に
141     サーバ統計がゼロに<strong>設定されない</strong>ことに
142     注意してください。
143     サーバが新しいリクエストに応答不能な時間を最小にするように
144     (リクエストは OS によってキューに追加されるので絶対に紛失はしません)、
145     また同時に、希望のチューニングパラメータを守るように
146     コードは書かれています。
147     このようにするために、世代をまたがった全子プロセスの追跡に使われている
148     <em>スコアボード</em>を維持しなければなりません。</p>
149
150     <p>status モジュールは、緩やかな再起動以前から開始して
151     リクエストに応答し続けている子プロセスを特定するために、
152     <code>G</code> を使うこともします。</p>
153
154     <p>現在、<code>USR1</code> を使うログ移動スクリプトでは、
155     再起動前の子プロセスがログを書き終わったことを確証する方法が
156     ありません。古いログに対して何かする前に、
157     <code>USR1</code> シグナルを送った後いくらか適当な時間待つことを
158     提案します。例えば、帯域の狭い通信路のユーザのリクエストのほとんどが 10 
159     分以下で完了しているということが分かっていれば、
160     古いログに何かする前に 15 分待つということです。</p>
161
162     <div class="note">再起動時に設定ファイルに誤りがあると、
163     親プロセスは再起動せずにエラーとともに終了します。
164     緩やかな再起動の場合は、親プロセスが終了した後でも子プロセスが
165     実行されたまま放置されたりもします。
166     (最後のリクエストを処理した後「緩やかに終了」する
167     子プロセスとなります。)
168     サーバを再起動する際に、これが問題になるかもしれません
169     -- サーバは listen するポートにバインドできないかもしれません。
170     再起動する前に、設定ファイルの構文を <code>-t</code>
171     コマンドライン引数
172     (<a href="programs/httpd.html">httpd</a> をご覧下さい)
173     を使って検証することができます。
174     設定ファイルの意味的な内容を構文と同様に検証したい場合は、
175     非 root ユーザで <code>httpd</code> を起動しようとすればわかります。
176     もしエラーがなければ、ソケットやログを開こうとして
177     root でないため
178     (もしくは実行中の <code>httpd</code>
179     が既に必要なポートにバインドしているため)
180     に失敗するでしょう。
181     これ以外の理由で起動に失敗したのであれば、
182     それは設定ファイルのエラーで、
183     緩やかな再起動を行う前にその誤りを修正しなければなりません。</div>
184 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
185 <div class="section">
186 <h2><a name="hup" id="hup">急な再起動</a></h2>
187
188 <dl><dt>シグナル: HUP</dt>
189 <dd><code>apachectl -k restart</code></dd>
190 </dl>
191
192     <p><code>HUP</code> あるいは <code>restart</code> シグナルを親プロセスに送ると、
193     <code>TERM</code> と同様に子プロセスを kill しますが、
194     親プロセスは終了しません。
195     設定ファイルを再読込して、ログファイル全てを開き直します。
196     その後、新しい子プロセスを起動して応答を続けます。</p>
197
198     <p><code class="module"><a href="./mod/mod_status.html">mod_status</a></code>
199     を使っている場合は、<code>HUP</code> が送られた場合に
200     サーバ統計がゼロに設定されることに注意してください。</p>
201
202     <div class="note">再起動時に設定ファイルに誤りがあると、
203     親プロセスは再起動せずにエラーとともに終了します。
204     これを避けるには次の方法をご覧下さい。</div>
205 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
206 <div class="section">
207 <h2><a name="race" id="race">付録: シグナルと競合状態</a></h2>
208
209     <p>Apache 1.2b9 以前は、再起動や停止のシグナルを含む<em>競合状態</em>
210     (競合状態を簡単に説明すると: タイミンにグよる問題で、
211     具合の悪い時間帯にちょうど何かが起こると予想外の動作をする
212     ようなことを指します) がありました。
213     「正しい」機能を持っているアーキテクチャでは、できるだけ
214     このようなことが起こらないようにしています。
215     しかし、ある種のアーキテクチャでは競合状態は未だ確実に起こりえる
216     ということに注意してください。</p>
217
218     <p>ディスク上で
219     <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code>
220     を使用しているアーキテクチャでは、
221     潜在的にスコアボードが壊れる可能性があります。
222     スコアボードが壊れた場合は、
223     "bind: Address already in use" (<code>HUP</code> 後) や
224     "long lost child came home!" (<code>USR1</code> 後)
225     といった結果になります。
226     前者は致命的なエラーですが、
227     後者はスコアボードスロットを失うだけです。
228     ですから緩やかな再起動は、たまに確実な再起動 (HUP)
229     も併用して使った方が良いでしょう。
230     これらの問題を克服するのは非常に難しいのですが、
231     幸いなことに大部分のアーキテクチャではスコアボードのファイルは必要ありません。
232     これを使用するアーキテクチャは、
233     <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code>
234     をご覧下さい。</p>
235
236     <p>全てのアーキテクチャにおいて、個々の子プロセスで
237     継続的な HTTP コネクション (KeepAlive)
238     に関する小さな競合状態が起こりえます。
239     リクエスト行を読んだ後、そしてリクエストヘッダを読む前に
240     子プロセスは終了するかも知れません。
241     これに対する修正がありますが 1.2 で修正するには発見が遅すぎました。
242     理論的には、これは問題ではありません。
243     なぜなら KeepAlive のクライアントは、ネットワーク遅延や
244     サーバのタイムアウトなどに備えていなければならないからです。
245     実際にも何か影響があるようには見えません
246     -- テストケースでサーバを 1 秒間に 20 回再起動しても
247     クライアントは壊れた画像や空のドキュメントを受け取ることなく
248     正常に閲覧できています。</p>
249 </div></div>
250 <div class="bottomlang">
251 <p><span>Available Languages: </span><a href="./de/stopping.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
252 <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
253 <a href="./es/stopping.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
254 <a href="./ja/stopping.html" title="Japanese">&nbsp;ja&nbsp;</a> |
255 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
256 <a href="./ru/stopping.html" hreflang="ru" rel="alternate" title="Russian">&nbsp;ru&nbsp;</a> |
257 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
258 </div><div id="footer">
259 <p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
260 <p class="menu"><a href="./mod/">モジュール</a> | <a href="./mod/directives.html">ディレクティブ</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">用語</a> | <a href="./sitemap.html">サイトマップ</a></p></div>
261 </body></html>