我有一个使用子进程的python脚本(test.py)执行一些bash命令并将bash命令stdout / stderr写入日志文件。如果像这样在前台运行python,则工作正常:
python test.py -i 123 -d 567
但是,如果像这样在后台运行test.py,则子进程似乎不再将stdout / stderr发送到日志文件。
python test.py -i 123 -d 567 > /dev/null 2>&1 & disown
以下是有关子流程的代码段:
process = subprocess.Popen(["xxx","xxx"], stdout=PIPE, stderr=PIPE)
stdoutdata, stderrdata = process.communicate()
log_output(stdoutdata, stderrdata)
其中log_output()是一种使用日志记录将消息写入文件的方法。
请告知如何在后台运行python,同时将stdout / stderr发送到日志文件。
谢谢!