如何在使用subprocess.Popen()时执行metricbeat

时间:2019-02-01 12:21:14

标签: python elastic-stack elastic-beats

我试图以与从Windows命令行执行metricebeat相同的方式执行,但要在python脚本中使用subprocess.Popen。

   subprocess.Popen(["C:\metricbeat\metricbeat.exe"])

尽管我执行了具有相同实现方式的其他进程并且它们起作用并且不会终止,但是该进程立即开始并终止。

    self.process.poll()
        if self.process.returncode is not None:
            self.Shutdown()

这是我的终止条件,这是永远终止的原因。

有没有办法将metricebeat作为后台进程执行?或者我可以尝试什么想法

1 个答案:

答案 0 :(得分:0)

您应该使用:

os.popen("Powershell.exe", 'C:\metricbeat\metricbeat -e -c C:\metricbeat\metricbeat.yml', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate()