Шаблоны для подсистемы Systemd


Автор - Ковалев Антон
Дата последнего редактирования - 12.07.2024

Подробнее с подсистемой systemd, можно ознакомиться на данной странице.

* Отредактируйте шаблон в соответствии с вашими настройками перед запуском службы!

Для скачивания файлов можно воспользоваться командами

GitFlic

curl -O "https://gitflic.ru/project/kovalevaa/utils/blob/raw?file=systemd/gitflic.service"

Агент GitFlic Runner

curl -O "https://gitflic.ru/project/kovalevaa/utils/blob/raw?file=systemd/gfagent.service"

GitFlic

Модуль gitflic.service
[Unit]
Description=Startup unit for run Gitflic service
Documentation=https://docs.gitflic.space/
After=network.target

[Service]
Type=simple
User=gitflic
Group=gitflic

WorkingDirectory=/opt/gitflic/
ExecStart=/usr/bin/java -jar /opt/gitflic/bin/gitflic.jar --spring.config.additional-location=file:/etc/gitflic/
ExecStop=/bin/kill -s 15 $MAINPID
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target

Агент GitfFlic Runner

Модуль gfagent.service
[Unit]
Description=Gitflic-runner
After=gitflic.service
Requires=gitflic.service

[Service]
User=gitflic-agent
Group=gitflic-agent
WorkingDirectory=/home/gitflic-agent/gitflic-runner
ExecStart=/usr/bin/java -jar runner.jar start --config=config/application.properties
ExecStop=/bin/kill -s 15 $MAINPID
StandardOutput=journal
StandardError=journal
Restart=on-failure
RestartSec=10
TimeoutStartSec=2min

[Install]
WantedBy=multi-user.target

Краткое описание файлов шаблонов юнитов systemd

Юниты systemd, по умолчанию, располагаются в трех директориях:

/usr/lib/systemd/system/ – юниты, установленные с помощью пакетов RPM, DEB
/run/systemd/system/ — юниты, созданные в рантайме
/etc/systemd/system/ — юниты, созданные системным администратором

[Unit] - Декларация модуля и его свойства

Description - Описание модуля
After - Запуск модуля после запуска определенных служб
Requires - Указание что для запуска сервиса необходим другой запущенный сервис
Wants - Декларация что для запуска сервиса необходим другой запущенный сервис
Documentation - Источник Документация к сервису

[Service] - Указание какими командами и под каким пользователем надо запускать сервис

Type - Тип сервиса
WorkingDirectory - Установка рабочего каталога, он делается текущим перед запуском стартап команд
User - Пользователь , под которым надо стартовать сервис
Group - Группа, под которым надо стартовать сервис
Environment - Переменные окружения
ExecStart - Команда для запуска сервиса
ExecStop - Команда для остановки сервиса
Restart - Указание, стратегии перезапуска сервиса
RestartSec - Время ожидания перед повторным запуском службы в секундах
StandardOutput - Указание, куда перенаправлять стандартный поток вывода
StandardError - Указание, куда перенаправлять поток ошибок
TimeoutStartSec - Таймаут перед запуском службы

[Install] - Описание уровня запуска сервиса

WantedBy - Указание уровня запуска