如何终止子程序的执行

1.有三个py文件并用pyinstaller进行封装a.exe;b.exe;c.exe
a.exe是一个图形化界面程序,通过subprocess调用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是一个监控程序,用于监控主程序b.exe是否在正常运行。

现在的问题是,我在a.exe这个图形化界面中按下一个stop按钮,需要终止b.exe。

但是封装之后,会产生两个b.exe进程,child返回的是内存小的那个进程,只杀死这个进程并不能终止b.exe的运行。

请问各位大神,有没有其他的好方法呢?

阅读 5.3k
1 个回答

看完需求我的理解其实就是如何在主进程里面kill掉子进程(不知道理解的对不对),试试下面的方法:

child = subprocess.Popen("b.exe %s -d %s -t %s "%(value,key1,key2))
child.kill() #或者child.terminate()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题