[英]Killing a subprocess exits Python program
def playvid(self):
proc1 = subprocess.Popen("gst-launch-1.0 videotestsrc ! autovideosink", shell=True)
time.sleep(3)
os.killpg(os.getpgid(proc1.pid),signal.SIGTERM)
當我按下一個按鈕時調用此函數(使用TK庫創建)。 3秒后,我的整個程序(連同GUI屏幕)被殺死,而不僅僅是子進程。 我該如何糾正並確保僅殺死子進程proc1。
如果您閱讀了有關子流程的文檔,則可以選擇以下幾種方法:
Popen.send_signal(信號)
將信號發送給孩子。
在Windows上,SIGTERM是Terminate()的別名。
Popen.terminate()
阻止孩子 在Posix OS上,該方法將SIGTERM發送給子級。 在Windows上,調用Win32 API函數TerminateProcess()來停止子級。
Popen.kill()
殺死孩子。 在Posix OS上,該功能將SIGKILL發送給子級。 在Windows上,kill()是Terminate()的別名。
我會用:
proc1.terminate()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.