我正在尝试编写一个cronjob,它启动我想要并行运行的多个进程。
我使用foreach调用每个命令,但命令行等待输出。我不想把它放进去。
想知道是否有人为此使用过任何图书馆?
在命令后面添加一个符号:
$ php task.php &
它将在后台运行php实例并继续。
如果你阅读passthru
的手册,你会注意到它告诉你如何避免这种情况。。。
如果一个程序是用这个函数启动的,为了让它在后台继续运行,程序的输出必须重定向到一个文件或另一个输出流。否则将导致PHP挂起,直到程序执行结束。
因此,如果您不关心输出,您可以依靠UNIX-fds将输出重定向到类似/dev/null
的东西,或者如果您确实想保存输出,则可以重定向到某个文件,这将避免PHP等待命令完成。
pssthru("somecommand > /some/path/to/file")