Страницы

Поиск по вопросам

четверг, 23 января 2020 г.

Определить начало перезагрузки в Linux

#linux


По изменению каких системных файлов можно определить наверняка, что вот прямо сейчас
поступила команда reboot (shutdown -r) и начинается перезагрузка?
    


Ответы

Ответ 1



По изменению системных файлов это определить невозможно. Более того, это вне ядра вообще невозможно определить. Косвенным указанием на перезагрузку служит получение SIGTERM, но и его можно выдать командой kill. Кстати, если вы не отреагировали на SIGTERM, то за ним последует SIGKILL, на который отреагировать уже не удастся.

Ответ 2



Решение я тогда нашел: в бесконечном цикле читать /proc/$PID/cmdline/ (все процессы) на наличие команд типа shutdown, reboot, init 0, init 6, etc. Причем отлавливало в 99% случаев. Но это настолько дико выжирало процессор, что для меня такое решение оказалось неприемлемым. А при добавлении слипов отлавливать не успевало Но мало ли кому пригодится

Комментариев нет:

Отправить комментарий