Что означает logind.conf `IdleAction = kexec` сделать точно?

Вы не можете изменить разрешения для самой ссылки; обычно это всегда 0777. Вместо этого вы можете изменить его в указанном каталоге (который будет /etc/rc.d/init.d ).

(Честно говоря, я сомневаюсь, что вы получите здесь дополнительную защиту.)

4
22.02.2019, 11:23
1 ответ

Да, есть инструмент kexeccommand -, который можно использовать для kexecнового ядра.

С точки зрения пользователя, использование kexecпримерно такое же, как использование reboot, за исключением того, что оно выполняется быстрее, поскольку текущее ядро ​​загружает новое и начинает его выполнение (, минуя BIOS, прошивку, загрузчик и т. д.)

Смысл предложения logind бездействующих действий, таких как «kexec» (или «перезагрузка» ), заключается в том, чтобы помочь вашей системе всегда работать с датой -до -, что для обновления ядра обычно требует перезагружать. Обнаружение бездействия помогает определить , когда было бы подходящим моментом для перезагрузки системы (, желательно в то время, когда это не вызовет слишком больших сбоев ), и частая перезагрузка (. ] при условии, что он простаивает достаточно часто, )обеспечит загрузку нового ядра вскоре после того, как менеджер пакетов установит обновленное ядро.

Это, конечно, параметр, с которым согласятся не все пользователи, поэтому, конечно, это не значение по умолчанию для этой опции. (По умолчанию установлено значение «игнорировать», которое ничего не делает...)


Чтобы понять, что именно вызывает действие kexec, вы можете начать смотреть на systemctl kexec, который является параллельным systemctl reboot. В его документации говорится:

Shut down and reboot the system via kexec. This is equivalent to systemctl start kexec.target --job-mode=replace-irreversibly --no-block.

Это проходит через специальный kexec.target , который обычно настраивается на требование a systemd -kexec.service , который затем ] вызывает инструмент /usr/lib/systemd/systemd-shutdownс аргументом kexec(через systemctl --force kexec, получается... ).

Чтобы пойти дальше, вам нужно посмотреть исходный код,и вы увидите, что systemd-shutdown kexecпросто попытается перезагрузиться, используя kexec -e, с логикой возврата к «нормальной» перезагрузке, если это не удастся.

Просмотрев справочную страницу kexec (8 ), вы увидите, что kexec -e— это все, что нужно для выполнения перезагрузки kexec, так что это все, с чем интегрируется systemd..

Другая отсутствующая часть — это часть, которая загружает загружаемое ядро ​​в память, часть, которая выполняет kexec -l, так что фактическое выполнение будет работать. Это еще одна кроличья нора. Я предлагаю это в качестве упражнения для читателя (или, возможно, вполне подходящего для отдельного вопроса здесь, в U&L!)

4
27.01.2020, 20:54

Теги

Похожие вопросы