백그라운드에서 외부 스크립트를 시작하고 실행하는 방법은 무엇입니까? [복제하다

StackOverflow https://stackoverflow.com/questions/1605520

문제

이 질문은 이미 여기에 답이 있습니다.

이 두 가지 방법을 시도했습니다.

os.system("python test.py")

subprocess.Popen("python test.py", shell=True)

두 가지 접근법 모두 테스트가 끝날 때까지 기다려야합니다. 나는 "nohup"이 일을 할 수 있다는 것을 알고 있습니다. Test.py 또는 다른 쉘 스크립트를 시작하여 백그라운드에서 실행하는 파이썬 방법이 있습니까?

test.py가 다음과 같다고 가정합니다.

for i in range(0, 1000000):
    print i

OS.System () 또는 하위 프로세스 .popen () 모두 10000000 라인의 출력 라인이 표시 될 때까지 메인 프로그램을 차단합니다. 내가 원하는 것은 test.py가 조용히 실행하고 기본 프로그램 출력 만 표시하자. Test.py가 여전히 실행중인 동안 메인 프로그램이 퀴지 될 수 있습니다.

도움이 되었습니까?

해결책

subprocess.Popen(["python", "test.py"]) 작동해야합니다.

메인 스크립트가 종료 될 때 작업이 여전히 죽을 수 있습니다. 이 경우 시도하십시오 subprocess.Popen(["nohup", "python", "test.py"])

다른 팁

os.spawnlp(os.P_NOWAIT, "path_to_test.py", "test.py")
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top