![无法在后台重定向 stdout 和 stderr](https://linux22.com/image/1158805/%E6%97%A0%E6%B3%95%E5%9C%A8%E5%90%8E%E5%8F%B0%E9%87%8D%E5%AE%9A%E5%90%91%20stdout%20%E5%92%8C%20stderr.png)
我想在后台启动一个任务并将所有输出重定向到一个文件。为此,我这样做了,./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 参数禁用它
感谢您的回答 :)