我正在尝试使用exec()执行命令并将stdout和stderr重定向到文件。
exec("nohup python main.py -i 1 > /var/scripts/logs/1_out.log 2>&1 &");
它会创建文件,但不会打印任何内容。
如果我在终端中运行命令,所有输出都没有问题。
答案 0 :(得分:0)
搞定了。 Python做了自己的输出缓冲,使其无法写入文件。使用-u选项运行它会禁用此功能。最终代码如下所示:
exec("nohup python -u main.py -i 1 > /var/scripts/logs/1_out.log 2>&1 </dev/null &");
感谢。