父子进程

daemon=True  主(进)线程不会等待子(进)线程,直接退出,而此时子(进)线程会随着主(进)线程的对出而退出

而如果父进程在运行中非正常退出,比如前面提到的kill -9命令直接杀死,它并没有机会去回收子进程

首先想到的是用信号signal来处理,这样一来,在杀死主进程时就不能再用kill -9命令了,因为kill -9命令表示向进程发送SIGKILL命令,而在系统中,SIGKILL和SIGSTOP两种信号,进程是无法捕获的,收到后会立即退出

这里使用SIGTERM信号,SIGTERM表示终止信号,是kill命令传送的系统默认信号,它与SIGKIIL的区别是,SIGTERM更为友好,进程能捕捉SIGTERM信号

子进程会继承父进程的信号处理机制(但是要在生成子进程之前就做信号注册,生成子进程后再注册那么子进程不继承)

主进程与其创建的子进程隶属于同一个分组里 通过进程的ID来获取进程对应的组ID,接着调用os.killpg方法,向进程的组ID发送信号,可以删除所有

posted @ 2017-08-24 21:01  notlate  阅读(237)  评论(0)    收藏  举报