sli*_*537 5 php linux bash shell
我有一些看起来像这样的代码行...
exec($this->path.' start > /dev/null 2>&1 &');
return ['status' => 'Command executed'];
Run Code Online (Sandbox Code Playgroud)
$this->path
是一个Shell脚本,start是该Shell脚本的一个参数,我相信该行的其余部分应该转储任何响应,以便php脚本可以继续运行。它无法正常运行,php成功启动了shell脚本(将启动游戏服务器),但是php一直挂起,直到我使用shell关闭服务器为止。当我使用外壳关闭服务器时,它完成了执行,并且收到了“命令已执行”响应。我还禁用了SELinux的执行,以确保它不会造成干扰。
运行Linux-Fedora 21和内置的PHP开发服务器。
我在生产环境中解决了同样的问题,如下:
pclose(popen($this->path.' start > /dev/null 2>&1 &', 'r'));
Run Code Online (Sandbox Code Playgroud)
所以,诀窍是启动服务器,然后关闭进程文件指针
希望有帮助:)
归档时间: |
|
查看次数: |
1124 次 |
最近记录: |