终端中没有来自python的输出
这是一种隐藏Python脚本的所有输出的方法吗终端中没有来自python的输出,python,shell,unix,Python,Shell,Unix,这是一种隐藏Python脚本的所有输出的方法吗 python myscript.py& 我试着用 python myscript.py& > log.txt 但我得到了一个输出。如果没有我需要的“&”,我就无法获得它。>log.txt仅重定向写入标准输出的输出。要完全捕获所有可能的输出,还需要重定向stderr: python myscript.py > log.txt 2>&1 & 请注意,将命令放在后台的符号在重定向之后的末尾。请参阅B
python myscript.py&
我试着用
python myscript.py& > log.txt
但我得到了一个输出。如果没有我需要的“&”,我就无法获得它。
>log.txt
仅重定向写入标准输出的输出。要完全捕获所有可能的输出,还需要重定向stderr
:
python myscript.py > log.txt 2>&1 &
请注意,将命令放在后台的符号在重定向之后的末尾。请参阅Bash编程-简介HOWTO中的
在您的特定情况下,您正在启动Flask服务器;Flasks使用Python日志记录
框架,默认配置是基于创建一个记录器,该记录器输出到stderr
,而不是stdout
您可以使用
日志记录
框架以不同方式配置日志记录;例如,您可以设置一个不同的处理程序来记录到特定的文件,而不是使用重定向。有关详细信息,请参见。我终于发现了问题:“&”必须在该行的末尾。它不起作用,因为myscript.py
之后的命令告诉shell为该命令打开一个单独的子进程,并且没有传递命令行的其余部分
你需要在最后通过&考试
python myscript.py > log.txt &
定义不起作用;使用>log.txt时会发生什么情况?这与不使用重定向有何不同?脚本是否也写入stderr
,还是改为写入stderr?以下是我启动的脚本:Ok!这行代码有效:python myscript.py>log.txt 2>&1,但如果我运行python myscript.py&>log.txt 2>&1@cooow:否,因为您将
和符号放在末尾,而不是重定向之前;使用python myscript.py>log.txt 2>&1&
@cooow:好的,您一开始没有在问题中包含这个细节。