fonction
pcntl_fork crée un nouveau processus
pcntl_waitpid attend ou retourne le statut du processus enfant de fork
posix_getpid retourne l'ID du processus actuel
posix_getppid obtient l'ID du processus parent
Remarque
pcntl_fork est appelé une fois et renvoie deux valeurs; le processus enfant obtient 0 et le processus parent obtient l'ID de processus enfant.
Afficher tous les processus PHP en cours d'exécution
ps -ef |grep php
Exemple
<?php
echo "Master process id=".posix_getpid().PHP_EOL;
$pid = pcntl_fork();
switch ($pid){
case -1:
die('Create failed');
case 0:
//Child
echo "Child process id = ".posix_getpid().PHP_EOL;
sleep(2);
echo "I will exit";
break;
default:
//等待子进程退出,后之心父进程的退出
if($exit_id = pcntl_waitpid($pid, $status, WUNTRACED)){
echo "Child({
$exit_id}) exited\n";
}
//Parent
echo "Parent process id = ".posix_getpid().PHP_EOL;
break;
}
sleep(18);