我使用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
允许重定向流。