【发布时间】:2020-05-13 14:32:40
【问题描述】:
我正在尝试从 PHP 脚本作为后台进程运行我的服务器,但它仍然挂起 PHP 脚本。我这样称呼它:
$exec_result = exec('./myapp option1 option2 &> /dev/null &');
我尝试了来自PHP hanging while exec() bash script 的东西,比如添加“set -m &&”或“shopt -u checkjobs &&”,但这没有帮助。我还尝试在 exec() 中调用我的 C++ 实用程序,该实用程序在后台运行命令(基本上只是用“&”调用 std::system),但这也无济于事。使用“nohup”不会改变任何东西。另外,问题不在我的服务器上,因为当我调用“sleep”命令时也会发生同样的事情。
从 bash 调用完全相同的命令会按预期在后台运行进程。老实说,我很困惑和沮丧。我究竟做错了什么?也许 PHP 需要某种权限来运行后台任务?我对 Linux 有点陌生。
如果重要的话,我将从 Debian 10 和 PHP 7.3 开始。
【问题讨论】: