linux下测试kill主程序后,子进程自动关闭
在python中,当使用kill pid后,默认子进程是不关闭,本文主要讲解如何在氯短赤亻kill主进程后自动关闭子进程
工具/原料
centos 7
python 2.7
创建子进程
1、我这氇筐塘瓠里使用subprocess创建子进程subprocess.Popen(...)创建一个子进程Popen.wait()等待子进程退出Popen.kill烫喇霰嘴()杀掉子进程Popen.returncode子进程的返回码,当子进程没有退出时,返回NULL
2、创建子进程类,包含一个Run函数,用来启动gedit子进程
3、添加一个关闭该子进程的函数,调用kill来关闭子进程
主程序
1、在主程序中引入子进程类然后运行子进程
2、signal.signal(signal艘绒庳焰num,handler)当指定的signalnum触发时,python会调用含有两个参剞麽苍足数的handler对象当使用kill pid命令时,会触发SIGTERM信号,可以被python捕获当使用kill -9 pid命令是,会触发SIGKILL信号,不能被python不会所以这里使用SIGTERM信号,并使用kill pid命令对于kill -9 pid命令杀掉主进程的子进程关闭,暂时还没有找的解决方法
运行效果
1、使用python运行程序,会启动gedit编辑器
2、查看gedit和python的进程号可以看到59859的gedit的父进程是59858的python
3、使用kill59858命令关闭父进程,再次查看进程列表,相应的子进程59859也被杀掉了
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:69
阅读量:31
阅读量:20
阅读量:77
阅读量:37