Попробуйте поймать SIGTERM.Обратите внимание, что вы не можете захватить SIGKILL, что может произойти во время выключения через определенное время.Я нашел этот действительно хороший пост , который также объясняет некоторые различия.
[обновление] Длинный снимок здесь, но как насчет тестирования, если std-in / out все еще открыт и хорош?Когда терминал умирает, эти файловые дескрипторы должны быть удалены.Отказ от ответственности, это предположение в лучшем случае.