Как перезапустить 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 -g
pm2 start app.js
pm2 restart app
Если вы используете node
или же nodemon
на Linux машине я бы рекомендовал использовать PM2
управлять сервисом. Это намного стабильнее nodemon
и предлагает другие функции уровня производства, такие как console.log
в console.error
файл и
Я просто использовал задание для запуска следующей команды каждые 5 минут
~/bin/node ~/backends/api/app.js
У меня были проблемы с nodemon, он говорил, что это не команда бла-бла, поэтому я подумал о том, чтобы просто направить прямо на узел и прямо в мое приложение.
Это работает для моего варианта использования, потому что приложение освобождается, если используется addr. Поэтому, если он потерпит крах, он перезапустит его, так как он не займет адрес.