Apacheの再起動の違い(restart,reload,graceful)
Apacheの起動方法について
Apacheで設定ファイルを変更した後の再起動ですが、大きく分けると「restart」、「reload」、「graceful」があります。このオプションの違いですが、以前の職場では以下のようなルールでした。
- サービス影響が少ないかたちでの再起動は「graceful」を使う
- サービス影響をあまり気にしなくても良い再起動は「restart」を使う
- 設定ファイルの読み直しのみは「reload」を使う
実際のApacheの設定ファイルを読み直しに使用する際のオプションの違いは以下となります
Apacheの「graceful」について
gracefulを利用した場合は、以下のような処理でApacheが再起動します
- 子プロセスは、現在のリクエストが終了後に終了します
- 親プロセスは設定ファイルを読み直し、変更した設定が反映されます
- 子プロセスが徐々になくなるに従って、 新しい子プロセスが起動されます
実行中のリクエストの処理を中止させたくない場合には、「graceful」を使用します
※graceful 再起動時は、再起動前に構文チェックが行われます。 構文エラーがあればエラーが表示され、再起動は行われませんので、この方法での再起動はオススメです
Apacheの「restart」について
restartを利用した場合は、以下のような処理でApacheが再起動します。
- Apacheのstop, startの処理を実行します
- 子プロセスを kill します。親プロセスは終了しません(killしません)
- 親プロセスは、設定ファイルを再読込して、ログファイル全てを開き直します
- その後、新しい子プロセスを起動して応答を続けます。
Apacheの「reload」について
reloadを利用した場合は、Apacheを終了せずに設定ファイルの読み直しをおこないます。変更後の設定の反映だけを行いたい場合に使用します。
ディスカッション
ピンバック & トラックバック一覧
[…] graceful動作です。今回は2.4.39のhttpd4を使いまわしたのでとくに対応は必要ありません。 […]
[…] load=graceful動作です。今回はのhttpd4を使いまわしたのでとくに対応は必要ありません。 […]