[PHP-users 1176] プロセスの状況で警告ページに切り替えたい

Ryuzi Kambe php-users@php.gr.jp
Tue, 14 Aug 2001 12:11:10 +0900


PHPからプロセスの状態を取得する方法で少々
行き詰まっています。

時折Webサーバが混雑し、その後まれにhttpdが暴走して
load avarageが上がってしまい適切なサービスが提供
できない場合があります。特に深夜など、あまり
監視出来ない時間帯に起こる場合もあるので、
これをなんとか回避したいと考えています

そこで、Webサーバとして利用しているマシンのプロセスの
状態によって、Webサーバ経由のサービスを提供する
ページに警告を出すか、エラーページにリダイレクト
させる方針を検討することにしました。

そこで、プロセスを取得するためにsystem関数を用いて

$command_result = system("ps -axu | grep command_name");

としたのですが、これですと、実行結果がtext/htmlの
標準出力としてブラウザの画面上に表示されるものの、
(PHPマニュアルのsystemコマンドの書いてあるように)
$command_resultには出力の最後の行しか代入されず、
それまでのpsコマンドの実行結果の行が取得できないため、
プロセスの状態をテキストとして得られずにいます。

ここで、標準出力されるpsコマンドの結果を
その後の処理に利用するために、
何らかの変数に代入することはできないでしょうか。

PHPをインストールしているOSはRedHat 6.2で、
PHPのバージョンは4.0.5で、mod_phpとして
利用しています。

Ryuzi Kambe
kambe@mc.kcom.ne.jp