簡體   English   中英

殺死子進程退出Python程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM