2010-01-29 108 views
8

我正在处理一个蟒蛇写的服务器,锁定,并停止工作,包括日志记录。我不知道是否有一个python相当于java的“kill -3”信号,至少打印当前的堆栈跟踪。如何强制python的VM打印堆栈跟踪?

+2

'杀-2'发送SIGINT,至少在Linux上似乎翻译成'KeyboardInterrupt'例外。这可能会导致堆栈跟踪被丢弃。当然,这取决于服务器。 – 2010-01-29 22:36:40

回答

2
import signal, traceback 
def quit_handler(signum,frame): 
    traceback.print_stack() 
signal.signal(signal.SIGQUIT,quit_handler) 
+0

如果服务器“锁定”,我想不会得到一个SIGQUIT信号。 – AndiDog 2010-01-29 21:35:18

+0

@AndiDog:我想你应该使用'kill(1)'发送一个,当你手动检测到它已经锁定。 – SamB 2010-11-21 18:24:18