PHP exec() nohup 重定向

PHP exec() nohup with redirect

我正在尝试使用 exec() 执行命令并将 stdout 和 stderr 重定向到文件。

exec("nohup python main.py -i 1 > /var/scripts/logs/1_out.log 2>&1 &");

它将创建文件,但不会打印任何内容。

如果我 运行 终端中的命令一切输出都没有问题。

成功了。 Python 有自己的输出缓冲,这使它无法写入文件。 运行 它与 -u 选项一起禁用此功能。最终代码如下所示:

exec("nohup python -u main.py -i 1 > /var/scripts/logs/1_out.log 2>&1 </dev/null &");

谢谢。