PHPで、現在利用可能なApacheの子の数を取得するにはどうすればよいですか
( status = SERVER_READY
Apacheスコアボードで)?
私が見逃しているphpでこれを行う簡単な方法があることを本当に望んでいます。
ps aux | grep httpd
またはのシェル コマンドを実行ps aux | grep apache
して、出力の行数をカウントできます。
exec('ps aux | grep apache', $output);
$processes = count($output);
ステータス列のどのステータスが接続を受け入れる準備ができていることを示しているかはわかりませんが、それに対してフィルター処理して、準備ができているプロセスの数を取得できます。
Apache サーバーのステータス ページにアクセスできる場合は、?auto フラグを使用してみてください。
http://yourserver/server-status?auto
出力は、ステータス ページの機械可読バージョンです。「 IdleWorkers」を探していると思います。簡単な PHP5 コードをいくつか紹介します。実際には、cURL またはソケット接続を使用して、サーバーがオフラインの場合にタイムアウトを開始することをお勧めします。
<?php
$status = file('http://yourserver/server-status?auto');
foreach ($status as $line) {
if (substr($line, 0, 10) == 'IdleWorkers') {
$idle_workers = trim(substr($line, 12));
print $idle_workers;
break;
}
}
?>