К основному контенту

Полное руководство по типам юнитов systemd

В systemd есть несколько типов юнитов, каждый из которых отвечает за управление различными аспектами системы. Вот основные типы юнитов:

1. Service (.service)

Используется для управления фоновыми службами (демонами).

  • Запускает, останавливает и перезапускает процессы.
  • Может зависеть от других юнитов.
  • Поддерживает разные стратегии запуска (Type=).

Пример:

[Unit] Description=Example Service [Service] ExecStart=/usr/bin/example Restart=always Type=simple [Install] WantedBy=multi-user.target

2. Target (.target)

Группирует другие юниты и задаёт состояние системы (например, multi-user.target похож на runlevel 3 в SysV).

Пример:

[Unit] Description=Custom Target Requires=network.target

3. Socket (.socket)

Управляет сокетами, позволяя systemd запускать службы по запросу при первом соединении.

Пример:

[Socket] ListenStream=12345 Accept=yes

4. Timer (.timer)

Запускает сервисы по расписанию (замена cron).

Пример:

[Timer] OnBootSec=5min OnUnitActiveSec=1h

5. Path (.path)

Следит за изменениями в файловой системе и запускает сервис при их обнаружении.

Пример:

[Path] PathExists=/tmp/examplefile

6. Mount (.mount)

Описывает точки монтирования файловых систем.

Пример:

[Mount] What=/dev/sdb1 Where=/mnt/data Type=ext4

7. Automount (.automount)

Позволяет автоматически монтировать файловую систему при первом обращении.


8. Swap (.swap)

Управляет swap-разделами и файлами.


9. Slice (.slice)

Группирует процессы и управляет ресурсами через cgroups.


10. Scope (.scope)

Управляет процессами, запущенными вне systemd.

Комментарии