Как получить количество детей Apache бесплатно в рамках PHP - PullRequest
3 голосов
/ 16 сентября 2008

В php, как я могу получить количество детей Apache, которые в настоящее время доступны
(status = SERVER_READY в табло apache)?

Я действительно надеюсь, что есть простой способ сделать это в php, который мне не хватает.

Ответы [ 2 ]

2 голосов
/ 16 сентября 2008

Вы можете выполнить команду оболочки ps aux | grep httpd или ps aux | grep apache и подсчитать количество строк в выводе.

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

Я не уверен, какой статус в столбце состояния указывает, что он готов принять соединение, но вы можете отфильтровать его, чтобы получить число готовых процессов.

1 голос
/ 16 сентября 2008

Если у вас есть доступ к странице состояния сервера 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;
  }
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...