@antonsr98
Системный Администратор

Кто как реализует автозапуск приложений node.js?

Доброе время суток. Кто как реализует сервис запуска и перезапуска приложения node.js?
Интересуют такие возможности как автозапуск, перезапуск при падении или же при изменении кода. Чем проще тем лучше:)
  • Вопрос задан
  • 8823 просмотра
Пригласить эксперта
Ответы на вопрос 6
AntiStream
@AntiStream
Потоковый программист
Через systemd очень легко это делается.
В начале создаём файл сервиса нашего node приложения по следующему типу:

# nodeapp.service
[Service]
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodeapp
User=nodeuser
Environment=NODE_ENV=production PORT=3000
WorkingDirectory=/path/to/nodeappdir
ExecStart=/usr/bin/node app.js

[Install]
WantedBy=multi-user.target


После чего делаем следующие действия в консоли:

sudo cp nodeapp.service /etc/systemd/system/nodeapp.service # копируем его куда надо
sudo nano /etc/systemd/system/nodeapp.service # смотрим, [редактируем,] [сохраняем,] закрываем
sudo systemctl daemon-reload # перезагружаем список "демонов"
sudo systemctl start nodeapp # запустить сервис
sudo systemctl enable nodeapp # делаем авто запускаемым при старте системы

# другие действия:
sudo systemctl disable nodeapp # отключаем авто запуск
sudo systemctl stop nodeapp # остановить сервис
sudo systemctl restart nodeapp # перезагрузка
systemctl status nodeapp # посмотреть статус
journalctl -u nodeapp.service # глянуть логи


Всё -- так это делается на линукс системах, а как на винде не знаю, там свои заморочки =))
Ну и надо чтобы systemd был установлен в системе, на убунте он вроде доступен(есть) с версии 14.10
Ответ написан
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
pm2

Плюсы по сравнению с forever
умеет садиться в автозапуск *nix систем при том использует все существующие сегодня варианты (при наличии system.d добавится в него, иначе в зависимости от ОС, например в убунту без system.d садиться в init.d)
Делается это одной командой: pm2 startup

Умеет следить за памятью и нагрузкой на процессор, что удобно, когда нет времени искать утечку памяти, а приложение должно работать, так же позволяет это все мониторить в реальном времени

Ротация логов. Перехватывает stdout и stderr, пишет логи в файл, дает возможность подключится к выводу приложения в реальном времени

Умеет запускать приложения с помощью других интерпретаторов, а так же просто бинарники

Приложения на node умеет запускать в кластере

Конфиг с опциями запуска в json
Ответ написан
@PyTiMa
Учусь, кручусь, верчусь.
azovl
@azovl
pm2 просто, удобно, качественно
Ответ написан
Комментировать
@maxtm
Make money, not job
Через сервисы в линуксе, AntiStream дал верный ответ
Ответ написан
Комментировать
w4r_dr1v3r
@w4r_dr1v3r
начинающий
запускай через модуль forever В конечном счёте всё сведётся к команде в консоли forever restart app.js Список возможностей доступен по forever -h

*чтобы рестарт имел смысл не забудь повесить на проект вотчер supervisor Удачи!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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