(PHP 8 >= 8.1.0)
pcntl_rfork — Manipule les ressources du processus
flags
Le paramètre flags
détermine quelles ressources du processus appelant (parent)
sont partagées par le nouveau processus (enfant) ou initialisées à leurs valeurs par défaut.
flags
est le OU logique d'un sous-ensemble des valeurs suivantes :
RFPROC
: Si défini un nouveau processus est créé ;
sinon les changements affectent le processus actuel.
RFNOWAIT
: Si défini, le processus enfant sera dissocié du parent.
A la sortie, le processus enfant ne laissera pas de statut à collecter pour le parent.
RFFDG
: Si défini, la table des descripteurs de fichiers de l'appelant est copiée ;
sinon les deux processus partagent une seule table.
RFCFDG
: Si défini, le nouveau processus démarre avec une table des descripteurs de fichiers propre.
Est mutuellement exclusif avec RFFDG
.
RFLINUXTHPN
: Si défini, le noyau renverra SIGUSR1 au lieu de SIGCHILD à la sortie du thread pour l'enfant.
Ceci est destiné à faire la notification de sortie du parent de sortie du thread Linux clone.
signal
Le numéro du signal.
En cas de succès, le PID du processus enfant est retourné dans le contexte du parent,
et un 0
est retourné dans le contexte du processus enfant.
En cas d'échec, un -1
sera retourné dans le contexte du parent,
aucun processus enfant ne sera créé, et une erreur PHP sera déclenchée.
Exemple #1 Exemple de pcntl_rfork()
<?php
$pid = pcntl_rfork(RFNOWAIT|RFTSIGZMB, SIGUSR1);
if ($pid > 0) {
// Ceci est le processus parent.
var_dump($pid);
} else {
// Ceci est le processus enfant.
var_dump($pid);
sleep(2); // tant que l'enfant ne dort pas, nous voyons son "pid"
}
?>
Résultat de l'exemple ci-dessus est similaire à :
int(77093) int(0)
Note:
Cette fonction n'est disponible que sur les systèmes BSD.