Как перезапустить NodeJS с помощью cPanel

Мне нужно знать, что использовать из корневой части сервера на основе cPanel для перезапуска приложения NodeJS, например, если процесс по каким-либо причинам завершается сейчас, приложение NodeJS не запустится, пока я не запустлю его вручную, то же самое, если перезапустить сервер, мне нужно вручную перезапустить его,

Кроме того, это касается нескольких учетных записей на сервере, команда должна позволять перезапускать / запускать больше приложений.

Любая помощь будет отличной

1 ответ

Вот автоматический способ сделать это:
- Найти, если узел сервера [экв. server.js] запущен или нет.
- Если сервер не работает, перезапустите с помощью "nodemon server.js".
- В противном случае, если сервер работает, ничего не делать.

Вы можете написать это в скрипте bash [пример кода ниже] и настроить CRON-задание в своей панели управления, чтобы запускать его через определенное время.

#!/bin/bash

NAME="server.js" # nodejs script's name here
RUN=`pgrep -f $NAME`

if [ "$RUN" == "" ]; then
  nodemon server.js
else
  echo "Script is running"
fi

Я бы порекомендовал запустить ваш node приложение, использующее PM2,

npm install pm2 -gpm2 start app.jspm2 restart app

Если вы используете node или же nodemon на Linux машине я бы рекомендовал использовать PM2 управлять сервисом. Это намного стабильнее nodemon и предлагает другие функции уровня производства, такие как console.log в console.error файл и

https://pm2.io/doc/en/runtime/features/commands-cheatsheet/

Я просто использовал задание для запуска следующей команды каждые 5 минут

~/bin/node ~/backends/api/app.js

У меня были проблемы с nodemon, он говорил, что это не команда бла-бла, поэтому я подумал о том, чтобы просто направить прямо на узел и прямо в мое приложение.

Это работает для моего варианта использования, потому что приложение освобождается, если используется addr. Поэтому, если он потерпит крах, он перезапустит его, так как он не займет адрес.

Другие вопросы по тегам