【问题标题】:Call Shell Command from PHP without considering output从 PHP 调用 Shell 命令而不考虑输出
【发布时间】:2015-11-08 11:39:03
【问题描述】:

我正在尝试编写一个 cronjob 来启动多个我想并行运行的进程。

我正在使用 foreach 调用每个命令,但命令行等待输出。我不想放。

想知道是否有人为此使用过任何库?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    在命令后添加 & 符号:

    $ php task.php &
    

    它将在后台运行该 php 实例并继续。

    【讨论】:

    • 请注意,这仅适用于基于 unix 的系统,使用“start /B”+ 命令,在 Windows 服务器上执行此操作。
    【解决方案2】:

    如果您阅读the manual on passthru,您会注意到它告诉您如何避免这种情况...

    如果使用此函数启动程序,为了使其继续在后台运行,必须将程序的输出重定向到文件或另一个输出流。否则会导致 PHP 挂起,直到程序执行结束。

    因此,您可以依靠 UNIX fds 将输出重定向到 /dev/null 之类的东西,例如,如果您不关心输出,或者如果您确实想保存输出,则可以重定向到某个文件,这样可以避免 PHP 在命令完成。

    pssthru("somecommand > /some/path/to/file")

    【讨论】:

      猜你喜欢
      • 2012-04-04
      • 2013-04-28
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多