208651a016b098f4fa1f6279559f104d70f1632dtakashi<?xml version="1.0" encoding="UTF-8" ?>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki<?xml-stylesheet type="text/xsl" href="/style/manual.ja.xsl"?>
19e8b55a6c4a9153b521816effe95db9acab16d0takashi<!-- English Revision: 1174747 -->
acc36ab93565d2880447d535da6ca6e5feac7a70nd
acc36ab93565d2880447d535da6ca6e5feac7a70nd<!--
031b91a62d25106ae69d4693475c79618dd5e884fielding Licensed to the Apache Software Foundation (ASF) under one or more
031b91a62d25106ae69d4693475c79618dd5e884fielding contributor license agreements. See the NOTICE file distributed with
031b91a62d25106ae69d4693475c79618dd5e884fielding this work for additional information regarding copyright ownership.
031b91a62d25106ae69d4693475c79618dd5e884fielding The ASF licenses this file to You under the Apache License, Version 2.0
031b91a62d25106ae69d4693475c79618dd5e884fielding (the "License"); you may not use this file except in compliance with
031b91a62d25106ae69d4693475c79618dd5e884fielding the License. You may obtain a copy of the License at
acc36ab93565d2880447d535da6ca6e5feac7a70nd
acc36ab93565d2880447d535da6ca6e5feac7a70nd http://www.apache.org/licenses/LICENSE-2.0
acc36ab93565d2880447d535da6ca6e5feac7a70nd
acc36ab93565d2880447d535da6ca6e5feac7a70nd Unless required by applicable law or agreed to in writing, software
acc36ab93565d2880447d535da6ca6e5feac7a70nd distributed under the License is distributed on an "AS IS" BASIS,
acc36ab93565d2880447d535da6ca6e5feac7a70nd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
acc36ab93565d2880447d535da6ca6e5feac7a70nd See the License for the specific language governing permissions and
acc36ab93565d2880447d535da6ca6e5feac7a70nd limitations under the License.
acc36ab93565d2880447d535da6ca6e5feac7a70nd-->
acc36ab93565d2880447d535da6ca6e5feac7a70nd
7db9f691a00ead175b03335457ca296a33ddf31bnd<manualpage metafile="stopping.xml.meta">
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
19e8b55a6c4a9153b521816effe95db9acab16d0takashi <title>Apache HTTP Server の停止と再起動</title>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki<summary>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>この文書では Unix に類似したシステムでの
19e8b55a6c4a9153b521816effe95db9acab16d0takashi Apache HTTP Serverの停止と再起動について扱っています。
208651a016b098f4fa1f6279559f104d70f1632dtakashi Windows NT, 2000, XP ユーザは<a
208651a016b098f4fa1f6279559f104d70f1632dtakashi href="platform/windows.html#winsvc">サービスとして
19e8b55a6c4a9153b521816effe95db9acab16d0takashi httpd を実行する</a>で、Windows 9x, MEユーザは<a
208651a016b098f4fa1f6279559f104d70f1632dtakashi href="platform/windows.html#wincons">コンソールアプリケーションとして
19e8b55a6c4a9153b521816effe95db9acab16d0takashi httpd を実行する</a>で、
208651a016b098f4fa1f6279559f104d70f1632dtakashi これらのプラットホームでの使用方法をご覧下さい。</p>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki</summary>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
d0e461f79912b6ba125ba7d7b0a8ed2966f0a44dyoshiki<seealso><program>httpd</program></seealso>
d0e461f79912b6ba125ba7d7b0a8ed2966f0a44dyoshiki<seealso><program>apachectl</program></seealso>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi<seealso><a href="invoking.html">Starting</a></seealso>
498e8a909bc308283d3713bb348246fe51de059cyoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<section id="introduction"><title>イントロダクション</title>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
19e8b55a6c4a9153b521816effe95db9acab16d0takashi <p>Apache HTTP Server を停止したり再起動したりするためには、実行されている
208651a016b098f4fa1f6279559f104d70f1632dtakashi <program>httpd</program> プロセスにシグナルを送る必要があります。
208651a016b098f4fa1f6279559f104d70f1632dtakashi シグナルを送るには二つの方法があります。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 一つ目はプロセスに直接シグナルを送る unix の <code>kill</code>
208651a016b098f4fa1f6279559f104d70f1632dtakashi コマンドを使用する方法です。
208651a016b098f4fa1f6279559f104d70f1632dtakashi システムを見ればたくさんの <program>httpd</program> が
208651a016b098f4fa1f6279559f104d70f1632dtakashi 実行されているのに気が付くでしょうが、シグナルを送るのは
208651a016b098f4fa1f6279559f104d70f1632dtakashi 親プロセスだけで、それ以外の個々のプロセスには
208651a016b098f4fa1f6279559f104d70f1632dtakashi シグナルを送らないで下さい。その親プロセスの pid は
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki <directive module="mpm_common">PidFile</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi に書かれています。これはつまり、親以外のプロセスに
208651a016b098f4fa1f6279559f104d70f1632dtakashi シグナルを送る必要すらない、ということです。
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 親プロセスに送ることができる 4 種類のシグナルがあります:
59d52c5719a3320d5775ab821b810f294e168f65yoshiki <code><a href="#term">TERM</a></code>,
59d52c5719a3320d5775ab821b810f294e168f65yoshiki <code><a href="#hup">HUP</a></code>,
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi <code><a href="#graceful">USR1</a></code>,
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi <code><a href="#gracefulstop">WINCH</a></code>
208651a016b098f4fa1f6279559f104d70f1632dtakashi です。これらの説明については続きをご覧下さい。</p>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>親プロセスにシグナルを送るには、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 次のようなコマンドを発行して下さい:</p>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
498e8a909bc308283d3713bb348246fe51de059cyoshiki<example>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</example>
498e8a909bc308283d3713bb348246fe51de059cyoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p><program>httpd</program> プロセスにシグナルを送る 2 番目の方法は
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>-k</code> というコマンドライン引数を使用することです。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 下で説明されているように、<code>stop</code>, <code>restart</code>,
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi <code>graceful</code>, <code>graceful-stop</code> を指定できます。
208651a016b098f4fa1f6279559f104d70f1632dtakashi これらは <program>httpd</program> の引数ですが、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 制御用のスクリプト <program>apachectl</program> はそれらの引数をそのまま
208651a016b098f4fa1f6279559f104d70f1632dtakashi <program>httpd</program> に渡します。</p>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p><program>httpd</program> にシグナルを送った後、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 実行状況を次のコマンドで読むことができます:</p>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
498e8a909bc308283d3713bb348246fe51de059cyoshiki<example>tail -f /usr/local/apache2/logs/error_log</example>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>ここに挙げた例は、各自の
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki <directive module="core">ServerRoot</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki <directive module="mpm_common">PidFile</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi の設定に適合するように適宜修正して下さい。</p>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki</section>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<section id="term"><title>急な停止</title>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<dl><dt>シグナル: TERM</dt>
498e8a909bc308283d3713bb348246fe51de059cyoshiki<dd><code>apachectl -k stop</code></dd>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki</dl>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p><code>TERM</code> あるいは <code>stop</code>
208651a016b098f4fa1f6279559f104d70f1632dtakashi シグナルを親プロセスに送ると、即座に子プロセス全てを kill しようとします。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 子プロセスを完全に kill し終わるまでに数秒かかるかもしれません。
208651a016b098f4fa1f6279559f104d70f1632dtakashi その後、親プロセス自身が終了します。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 処理中のリクエストは全て停止され、もはやリクエストに対する
208651a016b098f4fa1f6279559f104d70f1632dtakashi 応答はされません。</p>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki</section>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<section id="graceful"><title>緩やかな再起動</title>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<dl><dt>シグナル: USR1</dt>
498e8a909bc308283d3713bb348246fe51de059cyoshiki<dd><code>apachectl -k graceful</code></dd>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki</dl>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>親プロセスは <code>USR1</code> あるいは <code>graceful</code>
208651a016b098f4fa1f6279559f104d70f1632dtakashi シグナルを受け取ると、子プロセスに現在のリクエストの処理の後に終了する
208651a016b098f4fa1f6279559f104d70f1632dtakashi (あるいは何もしていなければすぐに終了する)
208651a016b098f4fa1f6279559f104d70f1632dtakashi ように<em>助言</em>します。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 親プロセスは設定ファイルを再読込して、ログファイルを開き直します。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 子プロセスが徐々になくなるに従って、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 新しい<em>世代</em>の設定による子プロセスに置き換えていきます。
208651a016b098f4fa1f6279559f104d70f1632dtakashi そして、これらが新たなリクエストに即座に応答し始めます。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>このコードは常に
208651a016b098f4fa1f6279559f104d70f1632dtakashi MPM のプロセス制御ディレクティブの設定を重視しますので、
208651a016b098f4fa1f6279559f104d70f1632dtakashi クライアントのリクエストを扱うプロセスとスレッドの数を再起動の処理中も
208651a016b098f4fa1f6279559f104d70f1632dtakashi 適切な値に維持されます。。また、次のようにして
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki <directive module="mpm_common">StartServers</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi を守ります:
208651a016b098f4fa1f6279559f104d70f1632dtakashi 少なくとも 1 秒後に <directive
208651a016b098f4fa1f6279559f104d70f1632dtakashi module="mpm_common">StartServers</directive> 個の新しい子プロセスが
208651a016b098f4fa1f6279559f104d70f1632dtakashi 生成されていなければ、その数になるように適宜プロセスを生成します。
208651a016b098f4fa1f6279559f104d70f1632dtakashi この挙動は現在の負荷に対して適切な子プロセスの数と
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki <directive
208651a016b098f4fa1f6279559f104d70f1632dtakashi module="mpm_common">StartServers</directive> パラメータでの
208651a016b098f4fa1f6279559f104d70f1632dtakashi 希望の数の両方を維持しようとしています。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p><module>mod_status</module> を
208651a016b098f4fa1f6279559f104d70f1632dtakashi 使用している場合は、<code>USR1</code> シグナルが送られた際に
208651a016b098f4fa1f6279559f104d70f1632dtakashi サーバ統計がゼロに<strong>設定されない</strong>ことに
208651a016b098f4fa1f6279559f104d70f1632dtakashi 注意してください。
208651a016b098f4fa1f6279559f104d70f1632dtakashi サーバが新しいリクエストに応答不能な時間を最小にするように
208651a016b098f4fa1f6279559f104d70f1632dtakashi (リクエストは OS によってキューに追加されるので絶対に紛失はしません)、
208651a016b098f4fa1f6279559f104d70f1632dtakashi また同時に、希望のチューニングパラメータを守るように
208651a016b098f4fa1f6279559f104d70f1632dtakashi コードは書かれています。
208651a016b098f4fa1f6279559f104d70f1632dtakashi このようにするために、世代をまたがった全子プロセスの追跡に使われている
208651a016b098f4fa1f6279559f104d70f1632dtakashi <em>スコアボード</em>を維持しなければなりません。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>status モジュールは、緩やかな再起動以前から開始して
208651a016b098f4fa1f6279559f104d70f1632dtakashi リクエストに応答し続けている子プロセスを特定するために、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>G</code> を使うこともします。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>現在、<code>USR1</code> を使うログ移動スクリプトでは、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 再起動前の子プロセスがログを書き終わったことを確証する方法が
208651a016b098f4fa1f6279559f104d70f1632dtakashi ありません。古いログに対して何かする前に、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>USR1</code> シグナルを送った後いくらか適当な時間待つことを
208651a016b098f4fa1f6279559f104d70f1632dtakashi 提案します。例えば、帯域の狭い通信路のユーザのリクエストのほとんどが 10
208651a016b098f4fa1f6279559f104d70f1632dtakashi 分以下で完了しているということが分かっていれば、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 古いログに何かする前に 15 分待つということです。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi <note><p>再起動が発行されると設定ファイルの構文チェックがまず走り、
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 設定ファイルに (構文上の) 誤りがないかチェックされます。
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 誤りがあった場合エラーメッセージでその旨が示され、サーバは再起動されません。
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi こうすることでサーバが終了しているけれども再起動できないという状況を
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 防ぎ、サーバが機能不全な状態になるのを防いでいます。</p>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi <p>ただしこれでもサーバが正しく再起動することは保証されません。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 設定ファイルの意味的な内容を構文と同様に検証したい場合は、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 非 root ユーザで <program>httpd</program> を起動しようとすればわかります。
208651a016b098f4fa1f6279559f104d70f1632dtakashi もしエラーがなければ、ソケットやログを開こうとして
208651a016b098f4fa1f6279559f104d70f1632dtakashi root でないため
208651a016b098f4fa1f6279559f104d70f1632dtakashi (もしくは実行中の <program>httpd</program>
208651a016b098f4fa1f6279559f104d70f1632dtakashi が既に必要なポートにバインドしているため)
208651a016b098f4fa1f6279559f104d70f1632dtakashi に失敗するでしょう。
208651a016b098f4fa1f6279559f104d70f1632dtakashi これ以外の理由で起動に失敗したのであれば、
208651a016b098f4fa1f6279559f104d70f1632dtakashi それは設定ファイルのエラーで、
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 緩やかな再起動を行う前にその誤りを修正しなければなりません。</p>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi </note>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki</section>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<section id="hup"><title>急な再起動</title>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi<dl><dt>シグナル: HUP</dt>
498e8a909bc308283d3713bb348246fe51de059cyoshiki<dd><code>apachectl -k restart</code></dd>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki</dl>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p><code>HUP</code> あるいは <code>restart</code> シグナルを親プロセスに送ると、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>TERM</code> と同様に子プロセスを kill しますが、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 親プロセスは終了しません。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 設定ファイルを再読込して、ログファイル全てを開き直します。
208651a016b098f4fa1f6279559f104d70f1632dtakashi その後、新しい子プロセスを起動して応答を続けます。</p>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki <p><module>mod_status</module>
208651a016b098f4fa1f6279559f104d70f1632dtakashi を使っている場合は、<code>HUP</code> が送られた場合に
208651a016b098f4fa1f6279559f104d70f1632dtakashi サーバ統計がゼロに設定されることに注意してください。</p>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi <note>graceful 再起動時は、再起動前に構文チェックが行われます。
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi もし構文エラーがあればその旨が示され、再起動は行われません。</note>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki</section>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi<section id="gracefulstop"><title>緩やかな停止</title>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi<dl><dt>Signal: WINCH</dt>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi<dd><code>apachectl -k graceful-stop</code></dd>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi</dl>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi <p><code>WINCH</code> や <code>graceful-stop</code> シグナルを受け取ると、
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 親プロセスは子プロセスに現在処理中のリクエストの後に終了する
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi (あるいは処理中のものが何もなければ直ちに終了する)
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi ように<em>アドバイス</em>します。
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi その後親プロセスは <directive module="mpm_common">PidFile</directive>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi を削除し、ポートでの Listen を全て停止します。
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 親プロセスはどの子プロセスがリクエスト処理中かを監視し続けています。
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 全ての子プロセスが終了するか
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi <directive module="mpm_common">GracefulShutdownTimeout</directive>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi で設定した時間が過ぎると、親プロセスも終了します。
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi タイムアウトに達した場合、残りの子プロセスには <code>TERM</code>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi シグナルが送信され強制的に終了されます。</p>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi <p>"graceful" 状態の場合 <code>TERM</code> シグナルを受け取ると、
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 親プロセスも子プロセスもすぐに終了します。しかしながら
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi <directive module="mpm_common">PidFile</directive>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi が削除されてしまっているので、<code>apachectl</code>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi や <code>httpd</code> にこのシグナルを送ることはできません。</p>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi <note><p><code>graceful-stop</code> を使うとまったく同一に設定された
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 複数の <program>httpd</program> を同時に実行することができます。
19e8b55a6c4a9153b521816effe95db9acab16d0takashi httpd を緩やかにアップグレードするのにはとても便利ですが、
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 設定ファイルによってはデッドロックやレースコンディションを
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 引き起こすこともあります。</p>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi
19e8b55a6c4a9153b521816effe95db9acab16d0takashi <p>ディスク上のファイルを使うもの、たとえばロックファイル
19e8b55a6c4a9153b521816effe95db9acab16d0takashi (<directive module="core">Mutex</directive>) や Unix ソケットファイル
19e8b55a6c4a9153b521816effe95db9acab16d0takashi (<directive module="mod_cgid">ScriptSock</directive>)
19e8b55a6c4a9153b521816effe95db9acab16d0takashi などはサーバの PID を含めて管理されていて、
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 共存できるよう注意が払われています。
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi しかしその他設定ディレクティブやサードパーティ製のモジュール、
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi CGI ユーティリティのパーシステント層などで
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi ディスク上にロックファイルや状態管理ファイルを
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 使っている場合は、実行されている複数の <program>httpd</program>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi が互いに衝突しないように気をつけなければなりません。</p>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi <p><program>rotatelogs</program> 形式のパイプを使ったログといった、
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi その他潜在的なレースコンディションについても注意しなければなりません。
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi 複数の <program>rotatelogs</program> が同じファイルを同時に
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi rotate しようとすると、互いにログファイルを破壊してしまいます。</p>
11b88e5476dfb8807d3fbfc280b0ac6ea6fa53e8takashi </note>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki</section>
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki
0d419faf71b4d392a596273bd6cc6db401bf6ab7yoshiki</manualpage>