2008-09-15 6 views

Répondre

2

Vous pouvez exécuter une commande shell de ps aux | grep httpd ou ps aux | grep apache et compter le nombre de lignes dans la sortie.

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

Je ne suis pas sûr de l'état dans la colonne d'état indique qu'il est prêt à accepter une connexion, mais vous pouvez filtrer par rapport que, pour obtenir un nombre de processus prêts.

1

Si vous avez accès à la page d'état du serveur Apache, essayez d'utiliser le drapeau automatique:

http://yourserver/server-status?auto

La sortie est une version lisible par machine de la page d'état. Je crois que vous recherchez "IdleWorkers". Voici un code PHP5 simple pour vous aider à démarrer. Dans la vraie vie, vous voudrez probablement utiliser cURL ou une connexion socket pour lancer un délai d'attente au cas où le serveur est hors ligne.

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

?> 
Questions connexes