【问题标题】:Start background processes from a background process从后台进程启动后台进程
【发布时间】:2013-01-27 10:30:37
【问题描述】:

我在 linux Ubuntu 中有一个 PHP 脚本 test.php,在这个 PHP 脚本中我使用 shell_exec() 来启动几个后台进程。

当我执行php test.php时,后台进程按预期启动,但是当我运行php test.php &时,这几个后台进程并没有启动。

从后台进程启动后台进程不是受支持的方式,还是有更好的方法?

【问题讨论】:

    标签: php linux process background-process


    【解决方案1】:

    试试php test.php < /dev/null & - 一些 Unix 发行版似乎期待一些输入并将进程空闲发送到后台。在 Fedora Linux (bash) 上测试,您可以启动 php test.php & 但它不会执行。检查 jobs 正在运行的后台进程 - 从后台捕获并使用 fg 执行。

    【讨论】:

      【解决方案2】:

      可以使用proc_open。我写了一个micro-framework 作为 POC,它正在使用这种技术。

      【讨论】: