stopping.html.ja.utf8 revision fac8c35bfb158112226ab43ddf84d59daca5dc30
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<?xml version="1.0" encoding="UTF-8"?>
e9458b1a7a19a63aa4c179f9ab20f4d50681c168Jens Elkner<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
e21e5f0fa66bf80e14cfd3f571e09b3952e46ad9Alexis Tsogias XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias This file is generated from xml source: DO NOT EDIT
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fc09e0a6af734edbd944dd8082bb51985c233b43Alexis Tsogias -->
fc09e0a6af734edbd944dd8082bb51985c233b43Alexis Tsogias<title>停止と再起動 - Apache HTTP サーバ</title>
fc09e0a6af734edbd944dd8082bb51985c233b43Alexis Tsogias<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
e21e5f0fa66bf80e14cfd3f571e09b3952e46ad9Alexis Tsogias<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<link href="/images/favicon.ico" rel="shortcut icon" /></head>
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<body id="manual-page"><div id="page-header">
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<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>
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<p class="apache">Apache HTTP サーバ バージョン 2.3</p>
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<img alt="" src="/images/feather.gif" /></div>
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<div id="path">
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<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="./">バージョン
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias 2.3</a></div><div id="page-content"><div id="preamble"><h1>停止と再起動</h1>
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<div class="toplang">
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<p><span>Available Languages: </span><a href="/de/stopping.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
8fb127028cb7dd361e348a3252e33487f73428bcJonathan von Schroeder<a href="/en/stopping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<a href="/es/stopping.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<a href="/fr/stopping.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<a href="/ja/stopping.html" title="Japanese">&nbsp;ja&nbsp;</a> |
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<a href="/ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<a href="/tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias</div>
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<div class="outofdate">This translation may be out of date. Check the
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias English version for recent changes.</div>
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder <p>この文書では Unix に類似したシステムでの
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder Apache の停止と再起動について扱っています。
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias Windows NT, 2000, XP ユーザは<a href="platform/windows.html#winsvc">サービスとして
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias Apache を実行する</a>で、Windows 9x, MEユーザは<a href="platform/windows.html#wincons">コンソールアプリケーションとして
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias Apache を実行する</a>で、
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias これらのプラットホームでの使用方法をご覧下さい。</p>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias</div>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#introduction">イントロダクション</a></li>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<li><img alt="" src="/images/down.gif" /> <a href="#term">急な停止</a></li>
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<li><img alt="" src="/images/down.gif" /> <a href="#graceful">緩やかな再起動</a></li>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#hup">急な再起動</a></li>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<li><img alt="" src="/images/down.gif" /> <a href="#race">付録: シグナルと競合状態</a></li>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder</ul><h3>参照</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>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<div class="section">
748e10233de9e76b68be4f0050c7b4a7f3c415eaAlexis Tsogias<h2><a name="introduction" id="introduction">イントロダクション</a></h2>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <p>Apache を停止したり再起動したりするためには、実行されている
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias <code class="program"><a href="/programs/httpd.html">httpd</a></code> プロセスにシグナルを送る必要があります。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias シグナルを送るには二つの方法があります。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 一つ目はプロセスに直接シグナルを送る unix の <code>kill</code>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder コマンドを使用する方法です。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder システムを見ればたくさんの <code class="program"><a href="/programs/httpd.html">httpd</a></code> が
8fb127028cb7dd361e348a3252e33487f73428bcJonathan von Schroeder 実行されているのに気が付くでしょうが、シグナルを送るのは
e21e5f0fa66bf80e14cfd3f571e09b3952e46ad9Alexis Tsogias 親プロセスだけで、それ以外の個々のプロセスには
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias シグナルを送らないで下さい。その親プロセスの pid は
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <code class="directive"><a href="/mod/mpm_common.html#pidfile">PidFile</a></code>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias に書かれています。これはつまり、親以外のプロセスに
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder シグナルを送る必要すらない、ということです。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 親プロセスに送ることができる 3 種類のシグナルがあります:
8fb127028cb7dd361e348a3252e33487f73428bcJonathan von Schroeder <code><a href="#term">TERM</a></code>,
e21e5f0fa66bf80e14cfd3f571e09b3952e46ad9Alexis Tsogias <code><a href="#hup">HUP</a></code>,
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias <code><a href="#graceful">USR1</a></code>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias です。これらの説明については続きをご覧下さい。</p>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder <p>親プロセスにシグナルを送るには、
e21e5f0fa66bf80e14cfd3f571e09b3952e46ad9Alexis Tsogias 次のようなコマンドを発行して下さい:</p>
8fb127028cb7dd361e348a3252e33487f73428bcJonathan von Schroeder
e21e5f0fa66bf80e14cfd3f571e09b3952e46ad9Alexis Tsogias<div class="example"><p><code>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</code></p></div>
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <p><code class="program"><a href="/programs/httpd.html">httpd</a></code> プロセスにシグナルを送る 2 番目の方法は
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <code>-k</code> というコマンドライン引数を使用することです。
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias 下で説明されているように、<code>stop</code>, <code>restart</code>,
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <code>graceful</code> を指定できます。
8fb127028cb7dd361e348a3252e33487f73428bcJonathan von Schroeder これらは <code class="program"><a href="/programs/httpd.html">httpd</a></code> の引数ですが、
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 制御用のスクリプト <code class="program"><a href="/programs/apachectl.html">apachectl</a></code> はそれらの引数をそのまま
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias <code class="program"><a href="/programs/httpd.html">httpd</a></code> に渡します。</p>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <p><code class="program"><a href="/programs/httpd.html">httpd</a></code> にシグナルを送った後、
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 実行状況を次のコマンドで読むことができます:</p>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<div class="example"><p><code>tail -f /usr/local/apache2/logs/error_log</code></p></div>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <p>ここに挙げた例は、各自の
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <code class="directive"><a href="/mod/core.html#serverroot">ServerRoot</a></code>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <code class="directive"><a href="/mod/mpm_common.html#pidfile">PidFile</a></code>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias の設定に適合するように適宜修正して下さい。</p>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<div class="section">
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<h2><a name="term" id="term">急な停止</a></h2>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<dl><dt>シグナル: TERM</dt>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<dd><code>apachectl -k stop</code></dd>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder</dl>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder <p><code>TERM</code> あるいは <code>stop</code>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder シグナルを親プロセスに送ると、即座に子プロセス全てを kill しようとします。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 子プロセスを完全に kill し終わるまでに数秒かかるかもしれません。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias その後、親プロセス自身が終了します。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 処理中のリクエストは全て停止され、もはやリクエストに対する
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 応答はされません。</p>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<div class="section">
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<h2><a name="graceful" id="graceful">緩やかな再起動</a></h2>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<dl><dt>シグナル: USR1</dt>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<dd><code>apachectl -k graceful</code></dd>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder</dl>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder <p>親プロセスは <code>USR1</code> あるいは <code>graceful</code>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias シグナルを受け取ると、子プロセスに現在のリクエストの処理の後に終了する
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias (あるいは何もしていなければすぐに終了する)
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias ように<em>助言</em>します。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 親プロセスは設定ファイルを再読込して、ログファイルを開き直します。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 子プロセスが徐々になくなるに従って、
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 新しい<em>世代</em>の設定による子プロセスに置き換えていきます。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder そして、これらが新たなリクエストに即座に応答し始めます。</p>
4e95ffc23b9c5f0b5980ab6f1cacbe7bd9789851Alexis Tsogias
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <div class="note">特定のプラットホームでは <code>USR1</code>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias を緩やかな再起動のために使うことができませんが、代わりのシグナル
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias (例えば WINCH) が使用できるでしょう。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder <code>apachectl graceful</code>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder というコマンドはプラットホームに合ったシグナルを送ります。</div>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <p>このコードは常に
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias MPM のプロセス制御ディレクティブの設定を重視しますので、
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias クライアントのリクエストを扱うプロセスとスレッドの数を再起動の処理中も
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 適切な値に維持されます。。また、次のようにして
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <code class="directive"><a href="/mod/mpm_common.html#startservers">StartServers</a></code>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder を守ります:
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 少なくとも 1 秒後に <code class="directive"><a href="/mod/mpm_common.html#startservers">StartServers</a></code> 個の新しい子プロセスが
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 生成されていなければ、その数になるように適宜プロセスを生成します。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias この挙動は現在の負荷に対して適切な子プロセスの数と
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <code class="directive"><a href="/mod/mpm_common.html#startservers">StartServers</a></code> パラメータでの
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 希望の数の両方を維持しようとしています。</p>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <p><code class="module"><a href="/mod/mod_status.html">mod_status</a></code> を
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 使用している場合は、<code>USR1</code> シグナルが送られた際に
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias サーバ統計がゼロに<strong>設定されない</strong>ことに
8fb127028cb7dd361e348a3252e33487f73428bcJonathan von Schroeder 注意してください。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias サーバが新しいリクエストに応答不能な時間を最小にするように
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder (リクエストは OS によってキューに追加されるので絶対に紛失はしません)、
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias また同時に、希望のチューニングパラメータを守るように
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias コードは書かれています。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias このようにするために、世代をまたがった全子プロセスの追跡に使われている
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder <em>スコアボード</em>を維持しなければなりません。</p>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder <p>status モジュールは、緩やかな再起動以前から開始して
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias リクエストに応答し続けている子プロセスを特定するために、
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <code>G</code> を使うこともします。</p>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <p>現在、<code>USR1</code> を使うログ移動スクリプトでは、
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 再起動前の子プロセスがログを書き終わったことを確証する方法が
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias ありません。古いログに対して何かする前に、
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <code>USR1</code> シグナルを送った後いくらか適当な時間待つことを
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 提案します。例えば、帯域の狭い通信路のユーザのリクエストのほとんどが 10
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 分以下で完了しているということが分かっていれば、
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 古いログに何かする前に 15 分待つということです。</p>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder <div class="note">再起動時に設定ファイルに誤りがあると、
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 親プロセスは再起動せずにエラーとともに終了します。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 緩やかな再起動の場合は、親プロセスが終了した後でも子プロセスが
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 実行されたまま放置されたりもします。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias (最後のリクエストを処理した後「緩やかに終了」する
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 子プロセスとなります。)
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias サーバを再起動する際に、これが問題になるかもしれません
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias -- サーバは listen するポートにバインドできないかもしれません。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 再起動する前に、設定ファイルの構文を <code>-t</code>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder コマンドライン引数
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder (<code class="program"><a href="/programs/httpd.html">httpd</a></code> をご覧下さい)
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder を使って検証することができます。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 設定ファイルの意味的な内容を構文と同様に検証したい場合は、
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 非 root ユーザで <code class="program"><a href="/programs/httpd.html">httpd</a></code> を起動しようとすればわかります。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias もしエラーがなければ、ソケットやログを開こうとして
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias root でないため
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias (もしくは実行中の <code class="program"><a href="/programs/httpd.html">httpd</a></code>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder が既に必要なポートにバインドしているため)
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder に失敗するでしょう。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder これ以外の理由で起動に失敗したのであれば、
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder それは設定ファイルのエラーで、
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 緩やかな再起動を行う前にその誤りを修正しなければなりません。</div>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<div class="section">
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<h2><a name="hup" id="hup">急な再起動</a></h2>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<dl><dt>シグナル: HUP</dt>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<dd><code>apachectl -k restart</code></dd>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder</dl>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <p><code>HUP</code> あるいは <code>restart</code> シグナルを親プロセスに送ると、
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <code>TERM</code> と同様に子プロセスを kill しますが、
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 親プロセスは終了しません。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 設定ファイルを再読込して、ログファイル全てを開き直します。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder その後、新しい子プロセスを起動して応答を続けます。</p>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <p><code class="module"><a href="/mod/mod_status.html">mod_status</a></code>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder を使っている場合は、<code>HUP</code> が送られた場合に
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias サーバ統計がゼロに設定されることに注意してください。</p>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder <div class="note">再起動時に設定ファイルに誤りがあると、
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 親プロセスは再起動せずにエラーとともに終了します。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder これを避けるには次の方法をご覧下さい。</div>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<div class="section">
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<h2><a name="race" id="race">付録: シグナルと競合状態</a></h2>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <p>Apache 1.2b9 以前は、再起動や停止のシグナルを含む<em>競合状態</em>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias (競合状態を簡単に説明すると: タイミンにグよる問題で、
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 具合の悪い時間帯にちょうど何かが起こると予想外の動作をする
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias ようなことを指します) がありました。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 「正しい」機能を持っているアーキテクチャでは、できるだけ
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias このようなことが起こらないようにしています。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias しかし、ある種のアーキテクチャでは競合状態は未だ確実に起こりえる
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder ということに注意してください。</p>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <p>ディスク上で
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder <code class="directive"><a href="/mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias を使用しているアーキテクチャでは、
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias 潜在的にスコアボードが壊れる可能性があります。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias スコアボードが壊れた場合は、
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder "bind: Address already in use" (<code>HUP</code> 後) や
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder "long lost child came home!" (<code>USR1</code> 後)
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder といった結果になります。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 前者は致命的なエラーですが、
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 後者はスコアボードスロットを失うだけです。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder ですから緩やかな再起動は、たまに確実な再起動 (HUP)
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder も併用して使った方が良いでしょう。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder これらの問題を克服するのは非常に難しいのですが、
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 幸いなことに大部分のアーキテクチャではスコアボードのファイルは必要ありません。
4e95ffc23b9c5f0b5980ab6f1cacbe7bd9789851Alexis Tsogias これを使用するアーキテクチャは、
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias <code class="directive"><a href="/mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias をご覧下さい。</p>
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder <p>全てのアーキテクチャにおいて、個々の子プロセスで
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias 継続的な HTTP コネクション (KeepAlive)
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias に関する小さな競合状態が起こりえます。
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias リクエスト行を読んだ後、そしてリクエストヘッダを読む前に
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 子プロセスは終了するかも知れません。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder これに対する修正がありますが 1.2 で修正するには発見が遅すぎました。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 理論的には、これは問題ではありません。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder なぜなら KeepAlive のクライアントは、ネットワーク遅延や
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder サーバのタイムアウトなどに備えていなければならないからです。
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder 実際にも何か影響があるようには見えません
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder -- テストケースでサーバを 1 秒間に 20 回再起動しても
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder クライアントは壊れた画像や空のドキュメントを受け取ることなく
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias 正常に閲覧できています。</p>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias</div></div>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<div class="bottomlang">
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<p><span>Available Languages: </span><a href="/de/stopping.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<a href="/en/stopping.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<a href="/es/stopping.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias<a href="/fr/stopping.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<a href="/ja/stopping.html" title="Japanese">&nbsp;ja&nbsp;</a> |
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<a href="/ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
87d946b3c13ffd7f6391aa796e786c2b31b122b1Jonathan von Schroeder<a href="/tr/stopping.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
12f6880fc0909e8dc2bdebc5f299a6a8bfa8afa7Alexis Tsogias</div><div id="footer">
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias<p class="apache">Copyright 2008 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>
677f88c528e9ec35e830f3eece2626dcde9895c6Jonathan von Schroeder<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>
409eb8adf8c7ee0609aef256b67f5dfad2fb6386Alexis Tsogias</body></html>