2017-04-15 64 views
-2

我是python新手,所以这里是我期待完成的。 我想用python来管理我的一些游戏服务器并启动/停止它们。为此我想在自己的过程中运行每个游戏服务器。 什么是使用python创建进程的最佳方式,所以即使主应用程序停止,这些进程也可以继续进行?python创建子流程(新手)

要启动服务器,我只需要执行shell代码。

如何在停止我的主应用程序并将其重新启动到这些进程后访问?

回答

0

检查subprocess模块。有一个叫做call的功能。请参阅here。 您可能需要将进程设置为不是守护进程。

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)