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

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

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

  2. Apache

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

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

  3. Apache

    Apache 2.4をソースからインストールする

    Apache 2.4系をソースでインストールする方法です。2.…

  4. Apache

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

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

  5. Apache

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

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

コメント

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

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

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

最近の記事

  1. 【Apache】OpenSSL headers not fo…
  2. 【CentOS 7】yum updateがくっそ遅いときに試…
  3. Linux版のTomcat 9でWebアプリケーションマネー…
  4. CentOS 7でTomcat 9の起動スクリプトの作成と自…
  5. Warning: tomcat.service change…
PAGE TOP