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


Автор - Ковалев Антон
Дата последнего редактирования - 02.02.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/
Requires=sshd.service redis.service network.target postgresql.service
After=sshd.service redis.service network.target rabbitmq-server.service postgresql.service

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

WorkingDirectory=/opt/gitflic/
ExecStart=/usr/bin/java -jar /opt/gitflic/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=user
Group=group
WorkingDirectory=/home/gitflic/gitflic-runner
ExecStart=/usr/bin/java -jar runner.jar start --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 - Указание уровня запуска