Apacheを起動するときに使う事もある apachectl の -k restart は stop && start ではないので注意しましょう。
ServerLimitやThreadLimitなどの一部の設定は、restart では適用されず、stop && start が必要になります。

apachectl は実はshellscriptで出来ています。中をのぞくと

#!/bin/sh
..
HTTPD='../httpd'
..
start|stop|restart|graceful|graceful-stop)
    $HTTPD -k $ARGV
    ERROR=$?
    ;;

と書かれています。restartはhttpdコマンドにそのまま渡されるようです。

そこでhttpdコマンドのドキュメントを読むと詳しくは

Stopping Apache httpd
http://httpd.apache.org/docs/2.2/stopping.html

を見ろとあります。そのページの再起動のところを読むと

Signal: HUP
apachectl -k restart
Sending the HUP or restart signal to the parent causes it to kill off its children like in TERM, but the parent doesn’t exit. It re-reads its configuration files, and re-opens any log files. Then it spawns a new set of children and continues serving hits.

と書いてあります。子プロセスにTERMを送って終了させ、親プロセスはそのままで設定ファイルなどを読み直して子プロセスを生成する。実際のところリクエスト終了まで待たないgracefulとイメージした方がいいかもしれません

Apacheの再起動をしたいとき、自分は普段 apachectl を使わずに init.dスクリプトを使います

/etc/init.d/httpd (restart|graceful)

OSやinit.dスクリプトの書き方にもよるのでしょうが、多くの場合、restartは stop && start な実装になっていると思います。

このブログ記事について

このページは、Masahiro Naganoが2013年2月 1日 11:51に書いたブログ記事です。

ひとつ前のブログ記事は「Log::Minimal でデバッグログを出力する環境変数の変更方法」です。

次のブログ記事は「Procletのオブジェクトインターフェイスでも起動するコマンドを直接書けるようにした」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja