【问题标题】: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。 您可能需要将该进程设置为不是守护进程。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-19
        • 1970-01-01
        相关资源
        最近更新 更多