Rapide Advanced Adulte
 
 Web|Image|Shop|Video|News|Wmx|Mobile|Wiki|Ajouter ce moteur

     Manuel PHP     
Partager
 
 
Partager
Partager

 

Table :

.Fonctions .NET
.Fonctions Apache
.Alternative PHP Cache
.Débogueur avancé pour PHP
.Tableaux
.Aspell (Obsolète)
.Nombres de grande taille BCMath
.Compilateur bytecode pour PHP
.Compression Bzip2
.Calendrier
.Paiement CCVS (Obsolète)
.Classes et Objets
.Fonctions Classkit
.Fonctions ClibPDF
.COM et .Net (Windows)
.Crack
.Caractères
.CURL
.Paiement Cybercash
.Fonctions Crédit Mutuel CyberMUT
.Cyrus IMAP
.Dates et heures
.Fonctions DB++
.DBA
.dBase
.DBM (Obsolète)
.Fonctions dbx
.Direct IO
.Accès aux dossiers
.Fonctions DOM
.Fonctions DOM XML
.Fonctions enchant
.Gestion des erreurs
.EXIF
.Fonctions Expect
.Fonctions de monitorage d'altération de fichiers
.Forms Data Format
.Fonctions Fileinfo
.Fonctions filePro
.Système de fichiers
.Fonctions Filter
.Fonctions Firebird/InterBase
.Fonctions Firebird/Interbase (PDO FIREBIRD)
.Fonctions FriBiDi
.FrontBase
.Fonctions FTP
.Fonctions
.Fonctions GeoIP
.Gettext (GNU)
.Fonctions GMP
.gnupg Fonctions
.Net Gopher
.Fonctions hash
.HTTP
.Hyperwave
.Hyperwave API
.Fonctions IBM (PDO IBM)
.Fonctions IBM DB2, Cloudscape et Apache Derby
.ICAP
.Iconv
.Fonctions ID3
.Fonctions d'administration d'IIS
.Images
.Image magick Functions
.IMAP
.Informix
.Fonctions Informix (PDO INFORMIX)
.Ingres II
.IRC
.Intégration de Java avec PHP
.Fonctions JSON
.KADM5
.LDAP
.libxml
.Lotus Notes
.Fonctions LZF
.Mail
.Traitement d'email
.Mathématiques
.MaxDB PHP Extension
.MCAL
.chiffrement mcrypt
.Fonctions de paiement MCVE (Monetra)
.Fonctions Memcache
.Hash
.Fonctions Mimetype
.Ming pour Flash
.Fonctions diverses
.mnoGoSearch
.Microsoft SQL Server
.Microsoft SQL Server et Fonctions Sybase (PDO DBLIB)
.Sessions Mohawk
.mSQL
.Chaînes de caractères multi-octets
.Fonctions muscat
.MySQL
.Fonctions MySQL (PDO MYSQL)
.Extension MySQL améliorée
.Fonctions de contrôle d'écran de terminal
.Réseau
.Fonctions Newt
.Netscape Server API
.agrégation d'objets/Composition de fonctions
.Overload
.Fonctions Oracle
.Fonctions ODBC (unifiés)
.Fonctions ODBC et DB2 (PDO ODBC)
.oggvorbis
.Gestion Audio OpenAL
.OpenSSL
.Oracle (Obsolète)
.Fonctions Oracle (PDO OCI)
.Bufferisation de sortie
.Ovrimos SQL
.Accès aux fichiers Paradox
.Fonctions Parsekit
.Contrôle des processus
.Expressions rationnelles compatibles Perl
.Fonctions PDF
.Fonctions PDO
.Phar archive stream and classes
.Options PHP et informations
.Fonctions POSIX
.Expressions rationnelles
.PostgreSQL
.Fonctions PostgreSQL (PDO PGSQL)
.Impression
.Exécution de programmes externes
.Création de document PostScript
.Pspell
.qtdom
.Radius
.Rar
.Readline (GNU)
.Recode (GNU)
.Fonctions Lecture d'En-tête RPM
.Fonctions runkit
.SAM - Messagerie asynchrone
.Extension client Satellite CORBA (Obsolète)
.SCA Functions
.Fonctions SDO
.Fonctions de Service d'Accès de Données SDO XML
.Fonctions SDO Relationnel Service d'Accès de Données
.Sémaphores et gestion de la mémoire partagée
.SESAM
.Sauvegarde d'Identifiant de session PostgreSQL
.Sessions
.Mémoire partagée
.Fonctions SimpleXML
.Fonctions SNMP
.Fonctions SOAP
.Sockets
.Fonctions Standard PHP Library (SPL)
.Fonctions SQLite
.Fonctions SQLite (PDO SQLITE)
.Shell2 sécurisé
.Fonctions statistics
.Flux
.Chaînes de caractères (Strings)
.Shockwave Flash
.Sybase
.Fonctions TCP Wrappers
.Tidy
.Analyseur de code PHP
.Unicode Functions
.URL
.Fonctions de gestion des variables
.Paiement par Verisign
.vpopmail
.API windows
.WDDX
.Fonctions win32ps
.Fonctions win32service
.Fonctions xattr
.Fonctions xdiff
.Analyseur syntaxique XML
.XML-RPC
.XMLReader functions
.Fonctions XMLWriter
.XSL
.XSLT
.YAZ
.NIS
.Fonctions ZIP
.Compression Zlib
 
   

  pcntl  


CXVII. Contrôle des processus

Introduction

Le système de contrôle des processus de PHP implémente un système de création, gestion et terminaison des processus comme sous Unix. Cette extension ne doit pas être activée pour une utilisation en serveur web, car les résultats pourraient être inattendus.

Cette documentation explique l'utilisation générale des fonctions du gestionaire de processus. Pour des informations plus détaillées sur le contrôle des processus Unix, nous vous encourageons à consulter votre documentation système, incluant notamment fork(2), waitpid(2) et signal(2), ou bien à compulser un ouvrage de référence comme "Advanced Programming in the UNIX Environment" par W. Richard Stevens (Addison-Wesley).

PCNTL utilise maintenant les ticks comme mécanisme de callback du gestionnaire de signaux, ce qui est beaucoup plus rapide que la version précédente. Ce changement suit la même sémantique que l'utilisation de "ticks utilisateurs". Vous utilisez declare() pour spécifier les endroits de votre programme où les callbacks peuvent être appelés. Cela vous permet de minimaliser la consommation dûe à la gestion d'événements asynchrones. Par le passé, compiler PHP avec pcntl revenait toujours à souffrir cette consommation, même si votre script n'utilisait pas pcntl.

Il y'a un ajustement à faire pour tous les scripts pcntl basés sur une version antérieure à PHP 4.3.0 afin qu'ils puissent fonctionner : il faut soit utiliser declare() dans la section où vous voulez avoir le callback, soit l'activer pour tout le script avec la nouvelle syntaxe globale de declare().

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Le support du contrôle des processus n'est pas activé par défaut en PHP. Vous devez compiler la version CLI ou CGI de PHP avec l'option de configuration --enable-pcntl pour activer le support de cette extension.

Note : Actuellement, ce module ne fonctionne pas sur les environnements non Unix comme Windows.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

La liste suivante représente les signaux supportés par les fonctions de gestion des processus. Reportez-vous au manuel de votre système (signal(7)) pour plus de détails sur ces signaux.

WNOHANG (entier)

WUNTRACED (entier)

SIG_IGN (entier)

SIG_DFL (entier)

SIG_ERR (entier)

SIGHUP (entier)

SIGINT (entier)

SIGQUIT (entier)

SIGILL (entier)

SIGTRAP (entier)

SIGABRT (entier)

SIGIOT (entier)

SIGBUS (entier)

SIGFPE (entier)

SIGKILL (entier)

SIGUSR1 (entier)

SIGSEGV (entier)

SIGUSR2 (entier)

SIGPIPE (entier)

SIGALRM (entier)

SIGTERM (entier)

SIGSTKFLT (entier)

SIGCLD (entier)

SIGCHLD (entier)

SIGCONT (entier)

SIGSTOP (entier)

SIGTSTP (entier)

SIGTTIN (entier)

SIGTTOU (entier)

SIGURG (entier)

SIGXCPU (entier)

SIGXFSZ (entier)

SIGVTALRM (entier)

SIGPROF (entier)

SIGWINCH (entier)

SIGPOLL (entier)

SIGIO (entier)

SIGPWR (entier)

SIGSYS (entier)

SIGBABY (entier)

Exemples

Cet exemple forke un processus démon, avec un gestionnaire de signaux.

Exemple 1. Exemple de contrôle de processus

<?php

$pid
= pcntl_fork();
if (
$pid == -1) {
  die(
"impossible de forker");
} elseif (
$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");
}

// setup signal handlers
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
     
}

}

?>

Voir aussi

Un tour par la section sur les fonctions POSIX peut être utile.

Table des matières
pcntl_alarm --  Planifie une alarme pour délivrer un signal
pcntl_exec --  Exécute le programme indiqué dans l'espace courant de processus
pcntl_fork -- Duplique le process courant
pcntl_getpriority --  Retourne la priorité d'un processus
pcntl_setpriority --  Change la priorité d'un processus
pcntl_signal -- Installe un gestionnaire de signaux
pcntl_wait --  Attend ou retourne le statut d'un processus fils
pcntl_waitpid -- Attend la fin de l'exécution d'un processus fils
pcntl_wexitstatus --  Retourne le code d'un processus fils terminé
pcntl_wifexited --  Retourne TRUE si le code de retour représente une fin normale
pcntl_wifsignaled --  Retourne TRUE si le code statut représente une fin due à un signal
pcntl_wifstopped --  Retourne TRUE si le processus fils est stoppé
pcntl_wstopsig --  Retourne le signal qui a causé l'arrêt du processus fils
pcntl_wtermsig --  Retourne le signal qui a provoqué la fin du processus fils

    Annonces       
 

 Retour au chapitre Php

 

Top
 

Ajouter JungleKey.fr à votre Explorateur

 
 

About Us | © 2007 JungleKey




iBlack | Mobile | Wiki | Ajouter ce moteur
.