Apache httpd の設定変更時の再起動・設定反映オプションの使い方

Apache httpd には起動関連の様々なコマンドオプションがあります。
状況や目的に応じて、使い分けることが必要になると思います。

ここでは、httpd.conf などの設定変更時の再起動・設定反映時にどのようなオプションを使うべきなのか整理しておきたいと思います。

まず、コマンド自体を確認しておきます。
下記の2通りあります。ここでの起動という目的を考えた場合には、いずれを使用しても同じです。

  • service httpd オプション
  • /etc/init.d/httpd オプション

ここでは、service httpd オプション で説明します。
さて、このオプションを次のようにして確認してみます。

[root ~]# service httpd
使い方: httpd {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}

ここで、再起動に関係するオプションは次の4つです。

  • restart
  • condrestart
  • reload
  • graceful

それぞれどのような処理になるのでしょうか。

1.restart

停止処理と開始処理を連続して行います。
開始処理の際に、変更した設定が反映されます。
停止処理は、TERMシグナル(SIGTERM)を送って、プロセスを即終了します。
処理中のリクエストはすべて中止して、すべての子プロセスを終了してから、親プロセスも終了します。
その後、起動処理を行います。
親プロセスIDは変更されます。

2.condrestart

restart の処理と同じですが、Apache httpd が起動しているときだけ再起動を行います。

3.reload

HUPシグナル(SIGHUP)を送って、子プロセスを終了します。
ただし、子プロセスのみを即終了して、親プロセスは終了しません。
処理中のリクエストはすべて中止されます。
すべての子プロセスが終了したあとに、親プロセスは設定を再読み込みし、変更した設定が反映されます。

変更後の設定の反映だけを行いたい場合に使用します。

4.graceful

USR1シグナルを送って、子プロセスを終了します。
ただし、子プロセスは実行中のリクエストの処理が完了してから終了します。
すべての子プロセスが終了したあとに、親プロセスは設定を再読み込みし、変更した設定が反映されます。

実行中のリクエストの処理を中止させたくない場合に使用します。

上記各オプションの用途表
オプション 用途
restart Webサービスを即終了して再起動する。
condrestart Webサービスを即終了して再起動する。
reload Webサービスを終了しないで、設定変更を反映する。実行中のリクエストの処理を中止しても構わない場合に使用する。
graceful Webサービスを終了しないで、設定変更を反映する。実行中のリクエストの処理を中止させたくない場合に使用する。

Comments are closed.