Когда я нахожусь в приложении Python (например, в оболочке Python), нажатие Ctrl\
приводит к
>>> Quit (core dumped)
Почему это так и как этого избежать? Очень неудобно, если приложение вылетает всякий раз, когда я случайно нажимаю Ctrl\
.
Когда я нахожусь в приложении Python (например, в оболочке Python), нажатие Ctrl\
приводит к
>>> Quit (core dumped)
Почему это так и как этого избежать? Очень неудобно, если приложение вылетает всякий раз, когда я случайно нажимаю Ctrl\
.
CTRL + \
— это ярлык по умолчанию для отправки SIGQUIT
в процесс переднего плана. По умолчанию SIGQUIT
вызывает дамп ядра. Подробнее в man kill
. При желании вы можете удалить ярлык из настроек терминала. 08.10.2013 CTRL-\ — это клавиша Linux, которая генерирует сигнал QUIT. Как правило, этот сигнал приводит к завершению программы и созданию дампа ядра. Это особенность UNIX и Linux, совершенно не связанная с Python. (Например, попробуйте sleep 30
, а затем CTRL-\.)
Если вы хотите отключить эту функцию, используйте команду stty.
Из командной строки Linux перед запуском Python:
stty quit undef
Модуль python signal
удобно с этим справляется.
import signal
# Intercept ctrl-c, ctrl-\ and ctrl-z
def signal_handler(signal, frame):
pass
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGQUIT, signal_handler)
signal.signal(signal.SIGTSTP, signal_handler)
Просто добавьте к сигналу обработчики, которые (в данном случае) ничего не делают.
quit
былundef
ed 22.04.2021