我正在处理一个python编写的服务器,它会锁定并停止工作,包括记录。我想知道是否有一个python相当于java的“kill -3”信号,它至少打印出当前的堆栈跟踪。
答案 0 :(得分:7)
使用 faulthandler 模块。 https://pypi.python.org/pypi/faulthandler/
import faulthandler
faulthandler.register(signal.SIGUSR1)
这在Python的解释器循环的C级信号处理之外工作,所以即使Python解释器本身挂起等待其他东西它也能工作。
答案 1 :(得分:2)
import signal, traceback
def quit_handler(signum,frame):
traceback.print_stack()
signal.signal(signal.SIGQUIT,quit_handler)
答案 2 :(得分:0)
您可以在this question中找到(仅限Unix)解决方案。