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+OpenSSLで構築したけどHTTPSに接続できない時

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

  2. Apache

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

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

  3. Apache

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

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

  4. Apache

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

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

  5. Apache

    mod_rewriteでログ出力をして500エラーを調査する方法

    .htaccessでのmod_rewriteが原因で、Internal…

コメント

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

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

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

最近の記事

  1. expdpが「すでに使用されているオブジェクト名です」と失敗…
  2. VMware Server 1系(Linux)のバージョンを…
  3. 【NetApp】AutoSupportMailの宛先を変更す…
  4. Mattermostを開くと502エラーが表示される時
  5. 【CentOS 7+Firewalld】FTPサーバへパッシ…
PAGE TOP