Я поместил довольно существенный код в ловушку отключения для одного из моих приложений, и он очень надежно работает на различных операционных системах (Windows XP, Vista, AS400 / iSeries / Systemi, Linux) под различными обстоятельства, включая sigterms и выключение Windows.
Но остерегайтесь тайм-аута отключения любой системы (аля Windows хороша, эта программа не отвечает на диалог).
Также остерегайтесь настоящих команд O / S kill, таких как Linux sigkill (?) И конечный процесс диспетчера задач Windows.