Как завершается работа операционной системы Linux? [закрыто]

Al igual que VAR=/opt/myappy luego usando $VARpara sustituir el valor. Me gusta$VAR/module1/ant -f patch.xml

-3
19.12.2018, 18:18
1 ответ

Как с sysvinit, так и с systemd выключение операционной системы начинается с уведомления процесса init(процесса с pid 1 )о том, что система должна завершить работу (или перезагрузиться, или отключить питание ).

sysvinitделает это, используя FIFO /run/initctlдля связи с init, запрашивая у него переключение на соответствующий уровень запуска. См. справочную страницу initдля краткого обзора.

systemd поддерживает множество способов сделать это. Различные сигналы могут использоваться для запроса выключения, перезагрузки и т. д. в различных вариантах; это также можно запросить по шине d -(busctlman-страница объясняет, как исследовать это ).

Когда pid 1 получает запрос на завершение работы, он следует своей конфигурации и спецификации и выполняет все необходимые для этого шаги. Обычно это включает в себя уведомление всех пользователей о том, что происходит отключение, отключение всех запущенных служб (управляемым способом с помощью systemd; использование сценариев завершения работы в различных формах с sysvinit), синхронизация смонтированных файловых систем, возможное их размонтирование, уничтожение всех оставшихся процессов (с помощью обычной последовательности TERM, затем KILL)и, наконец, вызов ядра rebootсистемный вызов с соответствующими параметрами.

Это описывает общую последовательность. Во всем этом есть еще много наворотов, в том числе контроль доступа (с помощью Polkit ), различные доступные хуки, kexec, внезапное отключение питания -, CtrlAltDel обработка... Документация systemd охватывает многие из этих деталей.

5
28.01.2020, 05:18

Теги

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