Создаем сервис с автозагрузкой на Ubuntu

Создаем сервис с автозагрузкой на Ubuntu

Пара шагов для того, что ваше приложение или нужная утилита запускалась после старта системы. Для примера возьмем утилиту базы данных pocketbase.

Создадим юнит-конфиг для сервиса
sudo nano /etc/systemd/system/pocketbase.service

[Unit]
Description=PocketBase service
After=network.target

[Service]
ExecStart=/path/to/pocketbase serve --http=8090 # команда запуска включающая полный путь к запускаемому файлу и параметры (параметры можно передать через Environment)
WorkingDirectory=/path/to/ #путь до директории где лежит запускаемый файл
Restart=always
User=your-username # ваш юзер
Environment=PORT=8090 # можно прокинуть переменные окружения в таком формате

[Install]
WantedBy=multi-user.target

Теперь выполним:

sudo systemctl daemon-reexec — перезапускает сам процесс systemd

sudo systemctl daemon-reload — пересчитывает (перезагружает) конфигурационные файлы systemd (например, .service файлы). Нужно выполнять после изменений в юнит-файлах.

sudo systemctl enable pocketbase — добавляет юнит pocketbase.service в автозагрузку, чтобы он запускался при старте системы.

sudo systemctl start pocketbase — немедленно запускает сервис pocketbase

Если вам нужно изменить юнит файл после создания, то можно выполнить только эти 2 команды:

sudo systemctl daemon-reload

sudo systemctl restart pocketbase

Ну вот и все, ваш сервис готов!

Подписывайтесь на мой телеграм-канал про разработку