Delgus
@Delgus

Как запустить команды в режиме демона?

ОС - ubuntu 18.04
Есть команда, которая переходит в директорию с кодом сервиса и вызывает там npm start для запуска сервиса локально
cd ~/services/analytic-front && npm start
Я хочу запустить ее как демона. Для того что бы можно было поставить демона в автозагрузку например - часто приходится поднимать сервис для тестирования на своей машине. Ну и для собственного саморазвития, интересно же.

Я создал в директории /home/aa/services файл af.sh
#!/bin/bash
cd ~/services/analytic-front && npm start

Файл исполняемый, при прямом запуске скрипт отрабатывает правильно

Потом в etc/systemd/system создал файл af.service с описанием демона
[Unit]
Description=Analytic Front Service
After=network.target

[Service]
Type=simple
ExecStart=/home/aa/services/af.sh
Restart=always

[Install]
WantedBy=multi-user.target


Но результат плачевный

5df09ae1d32f0303427800.jpeg

Что не так?
  • Вопрос задан
  • 2197 просмотров
Решения вопроса 1
Комментировать
Пригласить эксперта
Ответы на вопрос 3
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
При старте из консоли - приложение отрывается от нее, или продолжает висеть в консоли?
Если второе - нужно через nohup например оторвать от консоли.
Ответ написан
@pfg21
ex-турист
стоит и избавится от прослойки bash в сервисе
т.е. вместо cd ~/services/analytic-front && npm start
прописываешь в скрипте
WorkingDirectory=/home/%USER%/services/analytic-front
ExecStart=/home/%USER%/services/analytic-front/npm start

также посоветую еще прописать соотвествующих
User=
Group=
чтобы не запускать сервис от рута ибо не секурно.

п.с. системд не любит относительные пути, тоже изза секурности
Ответ написан
Комментировать
sashkets
@sashkets
Прекратил отвечать после 24.02.2022
есть еще supervisord для таких дел
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы