超过 1 个进程(后台)

超过 1 个进程(后台)

在 PHP 代码中,我有以下内容:

运行.php

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

我从浏览器执行 run.php (例如:http://localhost/run.php

然后我输入: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

我不明白为什么它显示超过 1 个 theprocess.php 进程?我只执行了 1 次。我没有执行超过 1 个。

编辑:

另外为什么它仍然在后台运行?它应该终止theprocess.php完成任务。

答案1

我已经修复了这个问题!

从浏览器运行脚本时,它不会将其视为 PHP cli。

代替

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

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

我不再在后台运行多个进程。

相关内容