Добавить в корзинуПозвонить
Найти в Дзене

Создай свой сервис в Linux | systemd

содержимое app.service: [Unit] Description=app After=network.target auditd.service [Service] Type=simple Restart=on-failure WorkingDirectory=/opt/app/ ExecStart=/opt/app/app.bin [Install] WantedBy=multi-user.target Для запуска и добавления в загрузку при запаске системы (+запуск в ручную): sudo systemctl daemon-reload sudo systemctl restart app.service sudo systemctl status app.service #linux #it
  1. Исполняемый файл сервера поместите в каталог /opt/app (при необходимости создайте его командой sudo mkdir -p /opt/app)
  2. Установите права на исполнение на файл сервера командой: sudo chmod +x /opt/app/app.bin
  3. Настройте сервис systemd под именем app.service (файл /etc/systemd/system/app.service) таким образом, чтобы:сервис запускался при старте системы (после network.target и auditd.service)
    сервис перезапускался при ошибке (on-failure)
    рабочий каталог сервиса был равен /opt/app

содержимое app.service:

[Unit]

Description=app

After=network.target auditd.service

[Service]

Type=simple

Restart=on-failure

WorkingDirectory=/opt/app/

ExecStart=/opt/app/app.bin

[Install]

WantedBy=multi-user.target

Для запуска и добавления в загрузку при запаске системы (+запуск в ручную):

sudo systemctl daemon-reload

sudo systemctl restart app.service

sudo systemctl status app.service

Разбор ключевых параметров:

  1. [Unit]:Description: Описание сервиса для удобства администрирования.
    After: Указывает цели, после которых должен запуститься данный сервис. В данном случае мы указали network.target и auditd.service.
  2. [Service]:Type: Тип сервиса. В данном случае используется simple, что означает, что процесс считается запущенным сразу после старта команды.
    Restart: Опция для автоматического перезапуска процесса в случае сбоя. Здесь указан режим on-failure, то есть перезапускать сервис только при неудачном завершении работы.
    WorkingDirectory: Рабочая директория, которая будет использоваться сервисом. Вы указали /opt/app.
    ExecStart: Команда, которую необходимо запустить для начала работы сервиса. Укажите путь к вашему исполняемому файлу приложения.
  3. [Install]:WantedBy: Определяет цель, к которой привязывается сервис. В данном случае мы выбрали multi-user.target, что соответствует многопользовательскому режиму работы системы.

#linux #it