Васильев Андрей Михайлович, 2022
Версии презентации
Существует несколько стандартов для реализации систем загрузки
Задачей загрузчика ОС является поиск ядра ОС с дальнейшей передачей ядру управления. Загрузчик может иметь интерактивный интерфейс для выбора вариантов ОС для загрузки
В GNU/Linux для загрузки ОС применяется связка из
В рамках initrd поставляются:
В рамках загрузки ядра ОС происходит поиск всего оборудования и его инициализация
После того как всё оборудование готово к работе, ядро запускает процесс-инициализации init
Существует множество систем инициализации:
Сравнение разных систем предоставляет проект Gentoo
Система инициализации может также выполнять действия других системных служб
При запуске системы обычно рассматриваются следующие стадии
Также система инициализации должна корректно выполнять корректное выключение системы
SysV Runlevel | systemd Target | Notes |
---|---|---|
0 | poweroff.target, runlevel0.target | Halt the system. |
1, s, single | rescue.target, runlevel1.target | Single user mode. |
2, 4 | multi-user.target, runlevel2.target, runlevel4.target | User-defined/Site-specific runlevels. By default, identical to 3. |
3 | multi-user.target, runlevel3.target | Multi-user, non-graphical. Users can usually login via multiple consoles or via the network. |
5 | graphical.target, runlevel5.target | Multi-user, graphical. Usually has all the services of runlevel 3 plus a graphical login. |
6 | reboot.target, runlevel6.target | Reboot |
emergency | emergency.target | Emergency shell |
Служба обычно представляет собой некоторое приложение, которое постоянно запущено и которое предоставляет полезные услуги пользователю или другим приложениям
Службы также могут представлять собой действия, выполняющиеся с некоторой регулярностью
Анализ поведения системы
Дейтвие | Команда |
---|---|
Show system status | systemctl status |
List running units | systemctl or systemctl list-units |
List failed units | systemctl –failed |
List installed unit files1 | systemctl list-unit-files |
Show process status for a PID | systemctl status pid |
Анализ поведения службы
Дейтвие | Команда | Комментарий |
---|---|---|
Show a manual page associated with a unit | systemctl help unit | as supported by the unit |
Status of a unit | systemctl status unit | including whether it is running or not |
Check whether a unit is enabled | systemctl is-enabled unit |
Управление состоянием службы
Дейтвие | Команда |
---|---|
Start a unit immediately | systemctl start unit as root |
Stop a unit immediately | systemctl stop unit as root |
Restart a unit | systemctl restart unit as root |
Reload a unit and its configuration | systemctl reload unit as root |
Reload systemd manager configuration2 | systemctl daemon-reload as root |
Дейтвие | Команда |
---|---|
Enable a unit to start automatically at boot | systemctl enable unit as root |
Enable a unit to start automatically at boot and start it immediately | systemctl enable –now unit as root |
Disable a unit to no longer start at boot | systemctl disable unit as root |
Reenable a unit3 | systemctl reenable unit as root |
Дейтвие | Команда |
---|---|
Shut down and reboot the system | systemctl reboot |
Shut down and power-off the system | systemctl poweroff |
Suspend the system | systemctl suspend |
Put the system into hibernation | systemctl hibernate |
Put the system into hybrid-sleep state (or suspend-to-both) | systemctl hybrid-sleep |
Для описания всех компонентов systemd используются unit-файлы, в которых описывается поведение конкретного компонента. В настоящий момент systemd поддерживает следующие виды unit-файлов:
Unit type | Description |
---|---|
Target | A group of units that defines a synchronization point. The synchronization point is used at boot time to start the system in a particular state. |
Service | A unit of this type starts, stops, restarts or reloads a service daemon such as Apache webserver. |
Timer | A unit of this type activates/deactivates specified service based on a timer or when the set time is elapsed. |
Socket | A unit of this type activates a service when the service receives incoming traffic on a listening socket. |
Device | A unit of this type implements device-based activation such as a device driver. |
Mount | A unit of this type controls the file-system mount point. |
Automount | A unit of this type provides and controls on-demand mounting of file systems. |
Swap | A unit of this type encapsulates/activates/deactivates swap partition. |
Path | A unit of this type monitors files/directories and activates/deactivates a service if the specified file or directory is accessed. |
Snapshot | A unit that creates and saves the current state of all running units. This state can be used to restore the system later. |
Slice | A group of units that manages system resources such as CPU, and memory. |
Scope | A unit that organizes and manages foreign processes. |
busname | A unit that controls DBus system. |
Список можно посмотреть в man-руководстве systemd.unit