繁体   English   中英

Bash 不会将 output 重定向到文件并在后台运行

[英]Bash won't redirect output to a file and run in the background

我见过很多与此类似的问题,但问题是其他解决方案都没有解决我的问题。 我想运行 2 个 python 脚本并使用nohup将它们的 output 重定向到单独的日志文件。

此代码位于名为startmain的 bash 脚本中:

nohup python3 GUI.py > GUI.log 2>&1 &
nohup python3 main.py > main.log 2>&1 &

当我运行sh startmain时,脚本都会执行,但没有任何内容写入任何一个日志文件。

现在假设我通过删除行尾的&字符来更改startmain代码:

nohup python3 GUI.py > GUI.log 2>&1
nohup python3 main.py > main.log 2>&1

这段代码说我不希望脚本在后台运行,所以只运行 GUI.py; 但是,在这里它实际上将所有 output 从 GUI.py 引导到 GUI.log 我知道为什么 main.py 不在这里运行,但我不知道为什么 output 在这种情况下被写入 GUI.log 但当我尝试在后台运行脚本时却没有。

知道我的问题是什么吗? 我的问题与类似问题的不同之处在于我正在执行 2 个脚本,这可能是它不起作用的原因。

感谢@KamilCuk 的帮助!

添加-u选项解决了这个问题:

nohup python3 -u GUI.py > GUI.log 2>&1
nohup python3 -u main.py > main.log 2>&1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM