Запустите Node Server из задания CPanel Cron - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть сервер Node.JS, работающий на PM2, который иногда выходит из строя из-за ограничения базы данных, над которым я работаю.

Тем временем я решил попробовать настроить cron в cpanel для перезапуска сервера каждый час, если он не работает.

Итак, я написал скрипт bash, подобный следующему:

#!/bin/bash

status_code=$(curl --write-out %{http_code} --silent --output /dev/null https://website.com/)

date >> cronlog.txt
if [[ "$status_code" -ne 200 ]] ; then
  pkill node
  nohup pm2 start bin/www &
  echo "Site status $status_code" >> cronlog.txt
  echo "Restarting Server" >> cronlog.txt
  exit
else
  echo "Site fine" >> cronlog.txt
  exit 0
fi

Запуск этого с терминала SSH работает отлично; если сайт не работает, он перезапустит его.

Однако, как только я настроил задание cron в cpanel, примерно так: 0 * * * * /home/acc123/fix.sh, глядя на вывод cronlog.txt, я вижу, что скрипт определенно запускается каждый час, пытаясь перезапустить сервер - это просто что сервер не перезагружается.

Предварительно Google предположил, что, возможно, pm2 не находится на пути, с которого запускается задание cron, поэтому я изменил скрипт так, чтобы он выглядел так:

#!/bin/bash

status_code=$(curl --write-out %{http_code} --silent --output /dev/null https://website.com/)

date >> cronlog.txt
if [[ "$status_code" -ne 200 ]] ; then
  pkill node
  nohup /home/acc123/bin/pm2 start /home/acc123/bin/www &
  echo "Site status $status_code" >> cronlog.txt
  echo "Restarting Server" >> cronlog.txt
  exit
else
  echo "Site fine" >> cronlog.txt
  exit 0
fi

Но ничего не меняется. Глядя на текстовый файл, в который я пишу, скрипт определенно запускается каждый час, и он определенно обнаруживает, что сайт не работает, но в то время как слова «Restarting Server» записываются в текстовый файл, сервер фактически не запускается .

Проверка nohup.out подтверждает, что в него ничего не записано, что говорит о том, что команда nohup /home/acc123/bin/pm2 start /home/acc123/bin/www & почему-то работает неправильно.

Я в тупике. Кто-нибудь видел что-то подобное раньше?

1 Ответ

0 голосов
/ 05 апреля 2019

Нашел это.Похоже, сам узел также не был в переменной пути для задания cron.Явное указание, где была устранена проблема узла.

...