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