【发布时间】:2014-11-12 22:33:21
【问题描述】:
我正在尝试用 Python 编写一个监控游戏服务器的程序。 为此,我需要查找在屏幕会话中启动的游戏服务器的进程是否仍在运行,为此,我需要它的 pid,但是,我没有得到屏幕会话的 pid,我获取一个仅在 popen 会话处于活动状态之前存在的 pid。屏幕会话的 pid 比 pid popen 的 .pid() 方法返回的 pid 高一个。我知道这可能是由 shell=True 引起的,但我使用 shell=False 运行它。有什么干净的方法可以在屏幕进程中获取屏幕进程/游戏服务器的 pid?我唯一的其他解决方案就是编写 .pid()+1,但我想这将是一个可怕的解决方法。
这是我的代码的相关部分:
proc = Popen(["screen", "-dmS", self.name, "./srcds_run", "-port", str(self.port), "-game", self.modDir], shell=False)
提前致谢。
【问题讨论】:
标签: python linux subprocess pid gnu-screen