【发布时间】:2015-05-12 07:31:19
【问题描述】:
我正在尝试使用 exec() 执行命令并将 stdout 和 stderr 重定向到文件。
exec("nohup python main.py -i 1 > /var/scripts/logs/1_out.log 2>&1 &");
它将创建文件,但不会向其打印任何内容。
如果我在终端中运行命令,所有输出都没有问题。
【问题讨论】:
-
尝试在命令字符串中添加
</dev/null,本质上是重定向所有 IO流(stdin默认不重定向) -
还是什么都没有。
exec("nohup main.py -i 1 > /var/scripts/logs/1_out.log 2>&1 </dev/null &"); -
还有没有nohup.out文件(默认文件nohup将stdout重定向到)
-
检查我的答案。通过使用 python 的 -u 选项使其工作,该选项禁用 python 的输出缓冲区。
标签: php exec stdout stderr nohup