1. 程式人生 > >python 程序 Ctrl+C退出

python 程序 Ctrl+C退出

今天寫的一段程式碼需要用到程序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程序
這樣這個程式就可以完美執行了