写了一个 forking 多进程socket 的 server 原型 运行系统是FB。 却发现 ctrl + c 无法关闭这个正在监听的程序。 import socket,traceback,os,sys import signal,time def reap(): while 1: try: result = os.waitpid(-1,os.WNOHANG) if not result[0]: break except: break print "reap process %d" % result[0] def sigint_handler(signum,frame): print 'eeexxeexx' #s.close() print 'close' sys.exit() signal.signal(signal.SIGINT,sigint_handler) host = 'localhost' port = 9009 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) s.bind((host,port)) s.listen(1) print "parent at %d" % os.getpid() while 1: try: clientsock,clientaddr = s.accept() except: #print sys.exc_info()[0] traceback.print_exc() time.