백그라운드에서 외부 스크립트를 시작하고 실행하는 방법은 무엇입니까? [복제하다
-
05-07-2019 - |
문제
이 질문은 이미 여기에 답이 있습니다.
이 두 가지 방법을 시도했습니다.
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")
제휴하지 않습니다 StackOverflow