在将子进程stdout和stderr发送到PIPE的同时在后台运行python脚本

时间:2018-11-07 21:53:32

标签: python subprocess

我有一个使用子进程的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发送到日志文件。

谢谢!

0 个答案:

没有答案