我有一個處理請求的應用程序(使用2.7)。當收到「A」類型的請求時,我需要啓動一個外部進程。Python外部進程沒有終止
當收到類型「B」的請求時,我需要檢查並看看外部進程是否已完成,然後根據它是否已完成做一些事情。
我遇到的問題是,當外部過程完成時不退出,它會變成殭屍狀態,例如:
1 Z root 13703 13644 0 80 0 - 0 exit 09:37 ? 00:00:00 [python] <defunct>
最初我開始用POPEN這樣的過程:
DEVNULL = open(os.devnull, "wb")
subprocess.Popen(cmd+args, stdin=DEVNULL, stdout=DEVNULL, stderr=DEVNULL, close_fds=True)
我嘗試使用os.spawn:
os.spawnv(os.P_NOWAIT, 'python', cmd+args)
但仍然過程中沒有 出口。
任何人都知道我可以如何獲得外部進程終止時完成?
提供有關'外部process'一些信息。 – stovfl
看起來問題在於你的外部進程,而不是啓動它的Python程序。完成後是否關閉? –