Я имею дело с написанным на Python сервером, который блокируется и перестает работать, включая ведение журнала. Интересно, есть ли Python, эквивалентный сигналу Java "kill -3", который хотя бы печатает текущую трассировку стека.
Используйте модуль faulthandler . https://pypi.python.org/pypi/faulthandler/
import faulthandler faulthandler.register(signal.SIGUSR1)
Это работает вне обработки сигналов цикла интерпретатора Python на уровне C, поэтому оно будет работать, даже если сам интерпретатор Python зависает в ожидании чего-то другого.
Смотри также: http://docs.python.org/dev/library/faulthandler
import signal, traceback def quit_handler(signum,frame): traceback.print_stack() signal.signal(signal.SIGQUIT,quit_handler)
Вы можете найти решение (только для Unix) в этот вопрос .