Apache

  (最終更新日:2015.10.9)

Apacheでreloadとgracefulを試した動きのメモ

Apacheにおける reload コマンドと graceful コマンドの動きを見てみようと思いましたので、下記のようなPHPスクリプトを作成してみました。
ブラウザからアクセスすると30秒待って《OK》が表示されます。

<?php

sleep(30);
echo "OK";

?>

まずは reload を試す

reload は、『全ての処理中リクエストは終了される』とか聞きますが果たして?

とりあえずブラウザから test.php にアクセス。待ち状態に入ります。
そこですかさずサーバ側で reload を実施。

$ /etc/rc.d/init.d/httpd2 reload
httpd を再読み込み中:                                      [  OK  ]

切れない…

少し想定と違いました。
どうやら切れないようです。

続いて graceful を試す

graceful は『プロセスが終わるのを待ってから新しい設定を反映させる』とか聞きますが果たして?

先ほどと同様にブラウザから test.php にアクセス。待ち状態に入ります。
そこですかさずサーバ側で graceful を実施。

$ /etc/rc.d/init.d/httpd2 graceful

あれ?
30秒待たずにいきなり《OK》が表示されました‥。

PHPログにも何も出力されていません。
どうやら子プロセス(sleep)が強制的に終了させられて次の処理に移り、処理完了となったみたいです。

結論

結論として、 graceful は子プロセスが強制的に終了させられて進む。

reload は終了まで待たされる。

という感じになりました。なるほど。

スポンサーリンク
スポンサーリンク

関連記事

  1. Apache

    RewriteCondが効かない?特定のディレクトリを除外する方法でつまずいたお話

    CakePHPをトップディレクトリから利用しています。http:/…

  2. Apache

    【解決済】原因は単純ミス‥。Apache+OpenSSLで構築したけどHTTPSに接続できない時

    いや。もうあまりの単純ミスぶりに自分をぶん殴りたいところですが。。。…

  3. Apache

    【Apache】OpenSSL headers not foundでconfigureが失敗する時

    Apacheをソースからインストールする際に --enable-ssl…

  4. Apache

    オレオレ証明書(自己証明書)を大急ぎで作る方法

    取り急ぎ1年間(365日)有効なオレオレ証明書を大急ぎ(最短作業)で作…

  5. Apache

    Apacheの実行ユーザー(起動ユーザー)を変更する方法

    Apacheを起動しているユーザーを変更するには httpd.conf…

コメント

    • いぬえもん
    • 2017年 1月 05日

    gracefulするとsleepが効かない原因を調べていたらここにたどり着きました。
    “子プロセスが”というより”sleepが”無視されている感じなんですよねぇ…

  1. この記事へのトラックバックはありません。

最近の記事

  1. 【NetApp】筐体廃棄前にディスクの完全消去をする手順
  2. 【PostgreSQL】同期レプリケーションモードで起動しな…
  3. Procmail のレシピ:本文で複数の条件(OR条件)を指…
  4. 【Apache】OpenSSL headers not fo…
  5. 【CentOS 7】yum updateがくっそ遅いときに試…
PAGE TOP