python 进程 Ctrl+C退出

来源:互联网 发布:剑侠情缘网络单机版 编辑:程序博客网 时间:2024/06/07 09:51

今天写的一段代码需要用到进程multiprocessing,这个哥们比较任性,用Ctrl+C无法退出,当程序跑完之后又给我报了一段错误 我也是醉了。
这里写图片描述

然后我百度了一下发现了线程的另一个函数multiprocessing.join(),这函数厉害了!不管是不是尸体,只要父进程死了,都直接回收。我就把他给加上了,又试了一下
这里写图片描述
错误信息竟然少了,然而剩下的这个错误信息怎么也不消失,即使用try也没用。看着join我突然想到C语言中也有这个函数,那是不是也可以用c中的signal呢,于是我加上了这 signal.signal(signal.SIGINT, CtrlC) 这一段代码 果然天从人愿 问题完美解决了!
这里写图片描述

完整代码如下:

        def CtrlC():            #如果用sys.exit()在上层有try的情况下达不到直接结束程序的效果(自行百度)            os._exit(0)        try:                                                                             signal.signal(signal.SIGINT, CtrlC)            signal.signal(signal.SIGTERM, CtrlC)            del = multiprocessing.Process(target=Del, args=())             test = multiprocessing.Process(target=Re,args=(con,))            del.start()            test.start()               del.join()            test.join()        except Exception,ex:            print ex

其中del进程是启动一个后台进程,不过这个进程无法自动切换bash。
test进程是一个普通的print进程
这样这个程序就可以完美执行了

原创粉丝点击