我是python新手,所以这里是我期待完成的。 我想用python来管理我的一些游戏服务器并启动/停止它们。为此我想在自己的过程中运行每个游戏服务器。 什么是使用python创建进程的最佳方式,所以即使主应用程序停止,这些进程也可以继续进行?python创建子流程(新手)
要启动服务器,我只需要执行shell代码。
如何在停止我的主应用程序并将其重新启动到这些进程后访问?
我是python新手,所以这里是我期待完成的。 我想用python来管理我的一些游戏服务器并启动/停止它们。为此我想在自己的过程中运行每个游戏服务器。 什么是使用python创建进程的最佳方式,所以即使主应用程序停止,这些进程也可以继续进行?python创建子流程(新手)
要启动服务器,我只需要执行shell代码。
如何在停止我的主应用程序并将其重新启动到这些进程后访问?
检查subprocess
模块。有一个叫做call
的功能。请参阅here。 您可能需要将进程设置为不是守护进程。
我不确定我是否完全理解这个问题,但也许这样?
运行过程:
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)