2017-04-15 4 views
-2

저는 파이썬을 처음 사용합니다. 그래서 여기에 제가하고자하는 것이 있습니다. 파이썬을 사용하여 일부 게임 서버를 관리하고 시작/중지 할 수 있습니다. 이를 위해 모든 게임 서버를 자체 프로세스로 실행하고 싶습니다. 파이썬을 사용하여 프로세스를 만드는 가장 좋은 방법은 무엇입니까? 따라서 주 응용 프로그램이 중지 된 경우에도 이러한 프로세스가 계속 될 수 있습니까?python create subprocess (newbie)

서버를 시작하려면 쉘 코드 만 실행하면됩니다.

기본 응용 프로그램을 중지하고이 프로세스로 다시 시작한 후에 어떻게 액세스 할 수 있습니까?

답변

0

subprocess 모듈을 확인하십시오. call이라는 기능이 있습니다. here을 참조하십시오. 프로세스를 데몬 프로세스가 아니게 설정해야 할 수도 있습니다.

1

질문을 완전히 이해할 수 있을지 모르겠지만 어쩌면 이렇게 할 수 있을까요?

실행 과정 :

import subprocess 

subprocess.Popen(['/path/gameserver']) #keeps running 

그리고 다른 스크립트에서 당신이 PID를 찾아 죽일 '추신 -A'를 사용 (또는 다시 시작) 할 수는 :

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) 
관련 문제