#linux
По изменению каких системных файлов можно определить наверняка, что вот прямо сейчас поступила команда reboot (shutdown -r) и начинается перезагрузка?
Ответы
Ответ 1
По изменению системных файлов это определить невозможно. Более того, это вне ядра вообще невозможно определить. Косвенным указанием на перезагрузку служит получение SIGTERM, но и его можно выдать командой kill. Кстати, если вы не отреагировали на SIGTERM, то за ним последует SIGKILL, на который отреагировать уже не удастся.Ответ 2
Решение я тогда нашел: в бесконечном цикле читать /proc/$PID/cmdline/ (все процессы) на наличие команд типа shutdown, reboot, init 0, init 6, etc. Причем отлавливало в 99% случаев. Но это настолько дико выжирало процессор, что для меня такое решение оказалось неприемлемым. А при добавлении слипов отлавливать не успевало Но мало ли кому пригодится
Комментариев нет:
Отправить комментарий