Manuel PHP
Précédent
Suivant
Le gestionnaire de contrôle des processus n 'est pas activé par défaut.
Il faut utiliser l'option de configuration --enable-pcntl lors de la compilation de PHP pour l 'activer.
La liste suivante rassemble tous les signaux qui sont actuellement supportés par les fonctions de gestion des processus de PHP.
Reportez vous à votre manuel pour plus de détails sur les comportements de ces signaux.
Tableau 1.
Signaux supportés
SIG_IGN
SIGFPE
SIGCONT
SIG_DFL
SIGKILL
SIGSTOP
SIG_ERR
SIGUSR1
SIGTSTP
SIGHUP
SIGUSR2
SIGTTIN
SIGINT
SIGSEGV
SIGTTOU
SIGQUIT
SIGPIPE
SIGURG
SIGILL
SIGALRM
SIGXCPU
SIGTRAP
SIGTERM
SIGXFSZ
SIGABRT
SIGSTKFLT
SIGVTALRM
SIGIOT
SIGCHLD
SIGPROF
SIGBUS
SIGCLD
SIGWINCH
SIGPOLL
SIGIO
SIGPWR
SIGSYS
Cet exemple effectue un fork du processus démon grâce à un gestionnaire de signaux.
Exemple 1.
?php $pid = pcntl_fork(); if ($pid == -1) {die("could not fork");} else if ($pid) {exit(); / / we are the parent} else {/ / we are the child} / / detatch from the controlling terminal if (!posix_setsid()) {die("could not detach from terminal");} / / setup signal handlers pcntl_signal(SIGTERM, "sig_handler"); pcntl_signal(SIGHUP, "sig_handler"); / / loop forever performing tasks while(1) {/ / do something interesting here} function sig_handler($signo) {switch($signo) {case SIGTERM: / / handle shutdown tasks exit; break; case SIGHUP: / / handle restart tasks break; default: / / handle all other signals}}?
Précédent
Sommaire
Suivant
Niveau supérieur