16 Назначение и работа systemd и sysvinit Различны
16 Назначение и работа systemd и sysvinit. Различные Systemd units. Редактирование units¶
Systemd и SysVinit — это системы инициализации в Linux, которые управляют процессом загрузки компьютера и службами, запускаемыми на различных этапах работы системы.
SysVinit¶
- Назначение: SysVinit был стандартной системой инициализации во многих ранних версиях Linux. Он основан на концепции уровней выполнения (runlevels), которые определяют, какие программы и службы должны быть запущены или остановлены в определенный момент времени.
- Работа: SysVinit использует скрипты инициализации, расположенные в
/etc/init.d
, для управления службами. Эти скрипты вызываются с аргументамиstart
,stop
,restart
и т. д. для управления состоянием служб. Уровни выполнения определены в/etc/inittab
, и система может переключаться между ними, изменяя набор работающих служб.
Systemd¶
- Назначение: Systemd — это более современная система инициализации и системный менеджер, который заменил SysVinit в большинстве дистрибутивов Linux. Он предоставляет более быструю загрузку, зависимости между службами, возможность параллельного запуска задач и лучшее управление ресурсами.
- Работа: Вместо скриптов инициализации Systemd использует "юниты" (units) для представления служб, точек монтирования, устройств и других ресурсов. Systemd управляет этими юнитами в соответствии с их зависимостями, определенными в конфигурационных файлах юнитов, что позволяет более гибко настраивать загрузку системы и управление службами.
Различные Systemd units¶
Systemd использует различные типы юнитов для управления соответствующими ресурсами системы:
- Service units (.service): Определяют службы, которые могут быть запущены, остановлены, перезапущены и т. д.
- Socket units (.socket): Управляют сетевыми сокетами и слушающими портами, что позволяет динамически запускать службы при поступлении сетевых запросов.
- Device units (.device): Представляют аппаратные устройства, опознанные в системе.
- Mount units (.mount) и Automount units (.automount): Отвечают за монтирование и автоматическое монтирование файловых систем.
- Target units (.target): Используются для группировки юнитов в логические группы, аналогично уровням выполнения в SysVinit, но более гибкие.
Редактирование и создание Systemd units¶
Для редактирования или создания юнитов systemd используются текстовые файлы конфигурации, обычно расположенные в /etc/systemd/system
для пользовательских юнитов или в /lib/systemd/system
для юнитов, установленных по умолчанию. Процесс может включать следующие шаги:
- Создание или редактирование файла юнита: Используйте текстовый редактор для создания нового файла юнита или редактирования существующего в соответствующем каталоге. Например,
sudo nano /etc/systemd/system/my_service.service
. - Конфигурация юнита: Определите параметры юнита, такие как тип, команды для запуска и остановки службы, зависимости и т. д.
- Перезагрузка конфигурации systemd: После создания или изменения файла юнита необходимо перезагрузить конфигурацию systemd, используя команду
sudo systemctl daemon-reload
. - Управление юнитом: Используйте команды
systemctl
для управления состоянием юнита, например,sudo systemctl start my_service.service
для запуска службы.
Systemd предлагает значительные улучшения в управлении системой по сравнению с SysVinit, включая лучшую поддержку современных систем, быструю загрузку и более гибкое управление службами.