将php系统命令输出转储到文件

Paw*_*Rao 3 php command system background-process

在php系统命令中,我们使用以下内容

system("ffmpeg -i test.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv output_file.flv 2>&1 &"). 
Run Code Online (Sandbox Code Playgroud)

请解释上述系统命令的用法.'2>&1&'代表什么?我想将进程详细信息转储到文件中,我该怎么做?

非常感谢你.

var*_*tec 10

2>&1« stderr»重定向到« stdout»,&最后使命令在后台运行.

要完成它应该是

«command» 2>&1 > /tmp/somefile.log &
Run Code Online (Sandbox Code Playgroud)

没有将« stdout» 重定向到/dev/null在后台运行的文件(或),system()没有多大意义,因为一旦PHP终止(例如达到时间限制),你的命令就会被杀死.

来自system()手册:

注意:如果使用此功能启动程序,为了使程序继续在后台运行,程序的输出必须重定向到文件或其他输出流.如果不这样做将导致PHP挂起,直到程序执行结束.