我正在运行 Django Web 服务器,并尝试将子进程的输出实时打印到日志中。如果我推荐 readline 行并取消注释 yowzer 行,我会得到所需的记录输出流,但是一旦我尝试按原样运行此行,我就不会得到任何输出。我究竟做错了什么?我能找到的所有结果似乎都表明这可以按原样工作。
sp = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
while sp.poll() is None:
logging.critical(sp.stdout.readline())
#logging.critical('yowzer')
time.sleep(10)
Run Code Online (Sandbox Code Playgroud)
谢谢你!
[4 月 3 日编辑]事实证明,问题不在于该命令长时间运行,而在于我使用分号将“su user”命令与主命令连接起来。删除 su 解决了这个问题。