Я хочу обнаружить, что система перезагружается, прежде чем она завершит мою программу в Linux. Я попытался использовать файл/var/run/utmp для обнаружения уровня запуска, поместить inotify на его изменения, но похоже, что система закрывает эту программу, прежде чем я получу сигнал. Я улавливаю выключение с ним, если я устанавливаю уровень запуска с помощью команды telinit, но не поймаю, если я просто перезапущу с кнопкой в верхнем правом углу в Ubuntu.Как обнаружить перезапуск перед завершением программы на Linux
Любая идея, как это можно сделать?
Обычно перезагрузка отправляет ваш процесс 'SIGTERM'. Почему ты не можешь это поймать? См. [Signal (7)] (http://man7.org/linux/man-pages/man7/signal.7.html) –
Как программа, работающая на коробке, это ваша компания, чтобы знать, почему вы завершаете работу, не хотите ли вы просто сохранить состояние, если оно есть, и выйти в любом случае? –