在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ 如何終止子程序的執(zhí)行

如何終止子程序的執(zhí)行

1.有三個(gè)py文件并用pyinstaller進(jìn)行封裝a.exe;b.exe;c.exe
a.exe是一個(gè)圖形化界面程序,通過subprocess調(diào)用b.exe,代碼如下:

child = subprocess.Popen("b.exe %s -d %s -t %s "%(value,key1,key2))

b.exe是主程序,在b.exe得到pid并通過subprocess傳遞給c.exe,代碼如下:

pid = os.getpid()
ch = subprocess.Popen("c.exe %d"%pid)

c.exe是一個(gè)監(jiān)控程序,用于監(jiān)控主程序b.exe是否在正常運(yùn)行。

現(xiàn)在的問題是,我在a.exe這個(gè)圖形化界面中按下一個(gè)stop按鈕,需要終止b.exe。

但是封裝之后,會(huì)產(chǎn)生兩個(gè)b.exe進(jìn)程,child返回的是內(nèi)存小的那個(gè)進(jìn)程,只殺死這個(gè)進(jìn)程并不能終止b.exe的運(yùn)行。

請(qǐng)問各位大神,有沒有其他的好方法呢?

回答
編輯回答
憶當(dāng)年

看完需求我的理解其實(shí)就是如何在主進(jìn)程里面kill掉子進(jìn)程(不知道理解的對(duì)不對(duì)),試試下面的方法:

child = subprocess.Popen("b.exe %s -d %s -t %s "%(value,key1,key2))
child.kill() #或者child.terminate()
2018年3月27日 00:31