【问题标题】:python create subprocess (newbie)python创建子进程(新手)
【发布时间】:2017-04-15 19:03:50
【问题描述】:
我是 python 新手,所以这就是我想要完成的事情。
我想使用 python 来管理我的一些游戏服务器并启动/停止它们。为此,我想在自己的进程中运行每个游戏服务器。
使用python创建进程的最佳方法是什么,即使主应用程序停止,这些进程也可以继续?
要启动服务器,我只需要执行 shell 代码。
在停止我的主应用程序并重新启动它以访问这些进程后,我如何才能获得访问权限?
【问题讨论】:
标签:
python
python-2.7
subprocess
【解决方案1】:
我不确定我是否完全理解了这个问题,但也许是这样的?
运行过程:
import subprocess
subprocess.Popen(['/path/gameserver']) #keeps running
在另一个脚本中,您可以使用 'ps -A' 找到 pid 并终止(或重新启动)它:
import subprocess, signal
p = subprocess.Popen(['ps', '-A'], stdout=subprocess.PIPE)
out, err = p.communicate()
for line in out.splitlines():
if 'gameserver' in line:
pid = int(line.split(None, 1)[0])
os.kill(pid, signal.SIGKILL)
【解决方案2】:
检查subprocess 模块。有一个函数叫做call。见here。
您可能需要将该进程设置为不是守护进程。