7.83 Contrôle des processus
7 Index des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes prédefinies ->Exemples . Voir aussi . pcntl_exec . pcntl_fork . pcntl_signal . pcntl_waitpid . pcntl_wexitstatus . pcntl_wifexited . pcntl_wifsignaled . pcntl_wifstopped . pcntl_wstopsig . pcntl_wtermsig
|
7.83.7 Exemples
Cet exemple forke un processus démon, avec un gestionnaire de signaux.
Exemple de contrôle de processus |
<?php
$pid = pcntl_fork(); if ($pid == -1) { die("impossible de forker"); } else if ($pid) { exit(); // nous sommes le processus père } else { //nous sommes le processus fils }
// détachons le processus du terminal if (!posix_setsid()) { die("impossible de se détacher du terminal }
// configuration des gestinnaires de signaux pcntl_signal(SIGTERM, "sig_handler"); pcntl_signal(SIGHUP, "sig_handler");
// boucle infinie while(1) { // exécution de quelque chose }
function sig_handler($signo) {
switch($signo) { case SIGTERM: // gestion des tâches de terminaison exit; break; case SIGHUP: // gestion des tâches de redémarrage break; default: // gestion des autres tâches }
}
?>
|
|