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.php
terminer la tâche.
Réponses:
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
À
Je n'ai plus plusieurs processus en cours d'exécution en arrière-plan.
la source