无法在后台重定向 stdout 和 stderr

无法在后台重定向 stdout 和 stderr

我想在后台启动一个任务并将所有输出重定向到一个文件。为此,我这样做了,./main.py > /tmp/logsFile 2>&1 &但没有成功。我认为问题出在后台任务上,当我执行此操作但不在后台时,它可以工作!当它在后台时,问题是文件已创建但为空,而我的机器人总是在连接时返回内容,所以文件不应该为空!我有一台 MSI CX62 6QD 249XFR,在 i3 上安装了 Ubuntu 18.04 LTS

编辑:上面的命令适用于带有 echo 的基本 .sh,但不适用于 main.py

答案1

我通过在启动我的 python 脚本的命令中添加 -u 参数解决了这个问题。该命令现在python3 -u main.py > /tmp/thebotlogs 2>&1 &
显然是输出缓冲,因此 -u 参数禁用它
感谢您的回答 :)

相关内容