Services webmasters
Partenaires
Jeux concours gratuits
 
pcntl_fork
<<<
pcntl_signal pcntl_waitpid
>>>

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.11 pcntl_signal()Installe un gestionnaire de signaux

[ Exemples avec pcntl_signal ]   PHP 4 >= 4.1.0

bool  pcntl_signal ( int   signo , callback   handle , bool   restart_syscalls )

pcntl_signal installe un nouveau gestionnaire de signaux opur le signal indiqué par le paramètre signo . Le gestionnaire de signaux est affecté à handler qui peut être le nom d'une fonction utilisateur, ou bien l'une des deux constantes globales SIG_IGN et SIG_DFL . Le paramètre optionnel restart_syscalls spécifie si l'appel système de redémarrage (restarting) doit être utilisé lorsque ce signal arrive, et par défaut, ce paramètre vaut TRUE .

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note

La possibilité d'utiliser une méthode d'objet comme fonction de callback est disponible depuis PHP 4.3.0. Notez que lorsque vous configurez le gestionnaire avec une méthode d'objet, le compteur de référence de l'objet est incrémenté, ce qui le rend persistant jusqu'à ce que vous changiez le gestionaire de signeux pour un autre, ou que le script se termine.

Exemple avec pcntl_signal

<?php
// l'usage des tick est nécessaire depuis PHP 4.3.0
declare (ticks = 1);

// gestionnaire de siganux système
function sig_handler($signo) {

     switch(
$signo) {
         case
SIGTERM:
             
// gestion de l'extinction
             
exit;
             break;
         case
SIGHUP:
             
// gestion du redémarrage
             
break;
         case
SIGUSR1:
             print
"Reçu le signe SIGUSR1...\n";
             break;
         default:
             
// gestion des autres signaux
     
}

}

print
"Installation du gestionnaire de signaux...\n";

// Installation des gestionnaires de signaux
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");

// ou bien utilisez un objet (disponible depuis PHP 4.3.0)
// pcntl_signal(SIGUSR1, array($obj, "faire_quelquechose");

print "Génération d'un signal SIGTERM à moi même...\n";

// envoi de SIGUSR1 à l'identifiant de processus courant
posix_kill(posix_getpid(), SIGUSR1);

print
"Done\n"

?>

Voir aussi pcntl_fork et pcntl_waitpid .

<< pcntl_signal >>
pcntl_fork Contrôle des processus pcntl_waitpid
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -