Plus de 1 processus (fond)


2

Dans le code PHP, j'ai les éléments suivants:

run.php

<?php
shell_exec("php theprocess.php > /dev/null 2>&1 &");
?>

J'exécute run.php depuis le navigateur (par exemple: http: //localhost/run.php )

Puis j'ai tapé: ps ux

username [~/www/site/test]# ps ux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
username   847  0.0  0.1  23808  7724 ?        R    16:55   0:00 php theprocess.php
username   849  0.0  1.2  89504 53244 ?        R    16:55   0:00 php theprocess.php
username   851  0.0  0.7  89504 31592 ?        R    16:55   0:00 php theprocess.php
username   853  0.0  0.1  23628  4636 ?        R    16:55   0:00 php theprocess.php
username   854  0.0  0.0   2276   824 ?        R+   16:55   0:00 ps ux
username  3880  0.0  0.0  10080  1704 ?        S    16:33   0:00 sshd: username@pts/2
username  3883  0.0  0.0   2676  1368 ?        S    16:33   0:00 -jailshell

Je ne comprends pas pourquoi montre-t-il plus d'un processus theprocess.php? Je n'ai exécuté qu'une fois. Je n'ai pas exécuté plus de 1.

Modifier:

Aussi, pourquoi fonctionne-t-il toujours à l'arrière-plan? il convient de terminer theprocess.phpterminer la tâche.


Je soupçonne que "shell_exec" est en soi la clé ..
James T Snell Le

voir la réponse ....
user79590

Réponses:


1

J'ai réglé le problème!

Lors de l'exécution d'un script à partir d'un navigateur, il ne s'agit pas d'une clé PHP.

Remplacer

shell_exec("/usr/bin/php theprocess.php > /dev/null 2>&1 &");

À

shell_exec("/usr/bin/php-cli theprocess.php > /dev/null 2>&1 &");

Je n'ai plus plusieurs processus en cours d'exécution en arrière-plan.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.