簡體   English   中英

殺死已創建的子進程及其創建的所有進程

[英]Kill a created subprocess and all processes created by it

我想要的是? 創建一個啟動並終止通信協議的腳本

我有的? 我有一個打開外殼程序腳本的python腳本,此外殼程序腳本初始化協議。 當我殺死父進程時,一切正常(但是在最終項目中,父進程必須保持活動狀態),但是當我殺死子進程時,它變成了僵屍函數,並且協議繼續運行。

我相信的問題可能是:我正在“殺死” shell腳本(不是協議,這就是我想要的)

我啟動shell腳本的那一行:

`protocolProcess = subprocess.Popen(["sh", arquivo], cwd = localDoArquivo) #inicia o protocolo`

protocolProcessPID = protocolProcess.pid #armazena o pid do protocolProcess

我殺死shell腳本的行: os.kill(protocolPID, signal.SIGTERM)

好吧,就是這樣! 如果有人可以幫助我,我將非常感激

僵屍進程是父進程尚未收獲的進程。

父進程將保留這些進程處理程序,直到時間結束,或者直到它讀取進程退出狀態,或者其自身被殺死為止。

聽起來父進程需要更好地處理其生成和收獲子進程的方式。 僅僅殺死一個子進程不足以釋放僵屍進程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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