【发布时间】:2018-07-19 13:45:49
【问题描述】:
我有一个 .war 文件,我想通过 python 启动。我希望它在 background 中运行,因此我的终端中不会出现日志消息。此外,我希望将实际的日志输出放入日志文件中。这是我用来解决这个问题的python代码。
我还没有运气。该进程未分离,因为在执行脚本后我无法运行其他 shell 命令。日志文件已创建,但 no 日志输出附加在此处。
编辑:让事情更清楚。我想增强这个脚本最终运行多个java进程。因此,这个 python 脚本应该产生那些 java 进程并最终死掉。如何实现这一点,包括将 stdout 重定向到文件的功能?
#!/usr/bin/env python3
import subprocess
import re
platformDir = "./platform/"
fe = "frontend-webapp-0.5.0.war"
logfile = open("frontend-log", 'w')
process = subprocess.Popen(['java', '-jar', platformDir + fe],
stdout=subprocess.PIPE)
for line in process.stdout:
logFile.write(line)
【问题讨论】:
标签: python shell subprocess popen