theprocess.ph-6ren">
gpt4 book ai didi

linux - 为什么 shell_exec 执行超过 1 个进程?

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:33 24 4
gpt4 key购买 nike

我不明白为什么当我从浏览器运行一次 run.php 时有超过 1 个进程

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

run.php

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

theprocess.php

<?php
$z = 1;
while ($z <= 20) {
echo $z . "\n";
$z++;
sleep(3);
}
?>

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

然后我输入:ps aux | grep php

username@ [~]# ps aux | grep php
username 27272 0.0 1.5 89504 64468 ? R 17:33 0:00 php theprocess.php
username 27274 0.0 1.2 89504 49872 ? R 17:33 0:00 php theprocess.php
username 27276 0.0 0.6 89504 28676 ? R 17:33 0:00 php theprocess.php
username 27278 0.0 0.0 22280 3704 ? R 17:33 0:00 php theprocess.php
username 27280 0.0 0.0 1940 508 ? S+ 17:33 0:00 grep php

我不明白为什么它显示超过 1 个 theprocess.php 进程?

还有为什么它还在后台运行?它应该终止 theprocess.php 完成任务。怎么办?

最佳答案

我已经解决了这个问题!

从网页运行脚本时,它不会被视为 PHP 客户端。

替换

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

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

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

关于linux - 为什么 shell_exec 执行超过 1 个进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6614017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com