3

PHPで、現在利用可能なApacheの子の数を取得するにはどうすればよいですか
( status = SERVER_READYApacheスコアボードで)?

私が見逃しているphpでこれを行う簡単な方法があることを本当に望んでいます。

4

2 に答える 2

2

ps aux | grep httpdまたはのシェル コマンドを実行ps aux | grep apacheして、出力の行数をカウントできます。

exec('ps aux | grep apache', $output);
$processes = count($output);

ステータス列のどのステータスが接続を受け入れる準備ができていることを示しているかはわかりませんが、それに対してフィルター処理して、準備ができているプロセスの数を取得できます。

于 2008-09-15T23:08:08.180 に答える
1

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;
  }
}

?>
于 2008-09-15T23:39:22.253 に答える