PHP无需等待即执行命令和日志输出

时间:2012-06-28 18:30:40

标签: php windows linux cmd

我使用exec()执行命令,无论是linux还是windows。

如何执行命令,linux和windows,并在不等待的情况下记录输出?

我知道linux,不等输出:command* > /dev/null 2>/dev/null &

并记录linux的输出:command* > /path/to/log.txt 2>/path/to/error.txt

如何在一个命令中记录并将其设置为后台?窗户怎么样?

1 个答案:

答案 0 :(得分:16)

在Linux上你可以这样做:

exec('command* > /dev/null 2>/dev/null &');

在Windows上,您可以执行以下操作:

pclose(popen('start /B cmd /C "command* >NUL 2>NUL"', 'r'));

这两个示例都禁用输出和错误,这些示例转到/dev/null(linux)或NUL(窗口),这意味着它们“无处”存储。

您可以使用系统上的有效路径替换它们。

在Linux上,最后&将其置于后台。在Windows上,这更复杂,需要start来调用进程,cmd允许重定向流。