Создаем сервис с автозагрузкой на 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
Ну вот и все, ваш сервис готов!
Подписывайтесь на мой телеграм-канал про разработку