Obtenir le PID d’un process lancé en php via un exec

Suite à l’article « Exécuter une action en fond de tâche en php » je vais vous donner la ligne de commande vous permettant d’obtenir le PID du processus lancé.

Le fork ne pose pas de difficulté puisque la fonction pcntl_fork retourne déjà le PID.

Lors d’un exec il faut rajouter des paramètres à la fin de la ligne de commande ce qui donne :

exec('php /var/www/mon_script.php' > /dev/null 2>&1 & echo $!', $op);
$pid = (int)$op[0];

 

Mise en pratique
Une fois le PID enregistré en base, il est plus facile de retrouver un processus lancé ou de la killer si celui ci vient de planter.