Инструменты пользователя

Инструменты сайта


flip:linux:systemd

Это старая версия документа!


SYSTEMD

Создание сервиса systemd

Каталог с конфигурациями: /etc/systemd/system/
Пример: myservice.service

Обновить список конфигураций

systemctl daemon-reload

Включить сервис

systemctl enable myservice

Отключить

systemctl disable myservice

Параметры

Тело конфигурации


[Unit]
Description – описание юнита для большего понимания
Documentation – документация по процессу sshd
After – зависимость, т.е. в данном случае запускать юнит только после запуска network.target и sshd-keygen.target
Requires=nginx.service - для запуска службы обязательно необходим сервис ngnix (указать любой другой)
Wants – еще одна зависимость, означает желательно. В примере Wants=sshd-keygen.target, т.е. желательно чтобы было запущено sshd-keygen.target . Желательно но не обязательно.

[Service]
Type – типы запуска служб
User - от имени какого пользователя выполняется сервис
Group - группа, от которой выполнять сервис
WorkingDirectory - рабочая директория службы
EnvironmentFile – файлы переменного окружения
ExecStart – полный путь к исполняемому файлу программы с параметрами запуска
ExecReload – полный пусть к исполняемому файлу программы с параметрами перезапуска программы
KillMode – указывается как будет завершен процесс. В данному случае параметр process говорит о том что будет закрыт только главный процесс
Restart – перезагрузка процесса, параметр on-failure указывает на автоматическую перезагрузку в случает отказа процесса
RestartSec – время ожидания через которое процесс должен перезагрузиться
TimeoutSec=200 - время, сколько ждать перед запуском/остановкой сервиса
OOMScoreAdjust=-100 - запрет на отключение сервиса, в случае нехватки памяти

[Install]
WantedBy – указывает на каком урове запуска стартует сервис, параметр multi-user.target указывает на запуск в многопользовательском режиме без графики


Типы запуска служб

  • simple (по умолчанию) – происходит незамедлительный запуск этой службы, с учетом того что процесс не разветвляется (fork). Не используйте simple если пользуетесь очередностью запуска. Одно исключение это активация сокета.
  • forking – служба считается запущенной после того, после разветвления процесса с завершением родительского процесса. Используется для запуска классических демонов исключая случаи, когда в таком поведении процесса нет необходимости. Также желательно указать PIDFile=, чтобы systemd мог отслеживать основной процесс.
  • oneshot – удобен для скриптов, которые выполняют одно задание и завершаются. При необходимости можно задать параметр RemainAfterExit=yes, чтобы systemd считал процесс активным даже после его завершения.
  • notify – идентичен параметру simple, но с оговоркой, что демон пошлет systemd сигнал о своей готовности. Эталонная реализация данного уведомления представлена в libsystemd-daemon.so.
  • dbus – служба считается находящейся в состоянии готовности, когда указанный параметр BusName появляется в системной шине DBus.
  • idle – откладывается выполнение двоичного файла службы до момента выполнения всех остальных задач. В остальном поведение аналогично simple.

Ключи времени

  • Wants - Ожидает
  • Requires - Требует
  • Before - Перед
  • After - После
  • WantedBy - Ожидается цель/служба
  • RequiresBy - Требуется цель/служба

Параметры перезапуска службы

  • no - никогда
  • always - всегда
  • on-success - успешно
  • on-failure - не успешно
  • on-abnormal - не нормальный
  • on-abort - при прирывании
  • on-watchdog - Сторожевой таймер (Watchdog timer) — аппаратно реализованная схема контроля над зависанием системы. Представляет собой таймер, который периодически сбрасывается контролируемой системой. Если сброса не произошло в течение некоторого интервала времени, происходит принудительная перезагрузка системы.
Restart settings/Exit causes no always on-success on-failure on-abnormal on-abort on-watchdog
Clean exit code or signal
Корректый код выхода или сигнал
X X
Unclean exit code
Неккоректный код выхода
X X
Unclean signal
Некорректный сигнал
X X X X
Timeout X X X
Watchdog
Сторожевой таймер
X X X X

Список целей

  • default.target - модуль по-умолчанию
  • graphical.target - запуск графической подсистемы
  • multi-user.target - запуск консоли
  • network-online.target - ожидание подключенной сети (используется в Wants)
  • network.target - сеть
  • network-pre.target - запуск до настройки сети (используется в Requires)
  • boot-complete.target - успешная загрузка

Примеры

Запуск службы x11vnc

nano /etc/systemd/system/x11vncsrv.service

[Unit]
# описание
Description=X11VNC Server
# здесь используется ключи времени с указанием цели или другой службы
After=prefdm.service

[Service]
# от какого пользователя запускать службу, не обязательно
User=root
# перезапуск службы, не обязательно
Restart=on-failure
#выполняемая команда
ExecStart=/usr/bin/x11vnc -auth /var/run/lightdm/root/:0 -dontdisconnect -usepw -noxfixes -shared -forever -rfbport 5900 -rfbauth /root/.vnc/passwd

[Install]
# здесь используется ключи времени с указанием цели или другой службы
WantedBy=graphical.target
flip/linux/systemd.1743016036.txt.gz · Последнее изменение: 2025/03/26 19:07 — flip

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki