Навсегда: команда не найдена

Я получаю

Ошибкаforever: команда не найдена, когда я запускаю процесс nodejs, используя команду forever в качестве cronjob (на машине amazon ec2): используемый мной скрипт bash имеет следующий код:

перейдите в /location/of/the/nodejs/file

навсегда запустить файл.js

но я могу запустить этот файл с помощью bash script.sh, но я получаю ошибку навсегда: команда не найдена, когда я запускаю его через cronjob

Я запутался, не знаю, что может быть причиной этого.

Кто-нибудь еще сталкивался с этой проблемой?

заранее спасибо

8 ответов

Решение

Эй, столкнулся с той же проблемой

Используемый npm install forever -g и моя проблема решена... может быть, это поможет вам также

Для других пользователей, которые сталкиваются с этой проблемой:

Вы должны добавить путь к модулю forever, а затем запустить скрипт как cronjob.

В Linux путь обычно такой:

/ usr / local / lib / node_modules / forever / bin / forever start file.js

просто используйте эту команду в вашем скрипте, и ошибка навсегда: команда не найдена, не будет беспокоить вас.

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

Если решение azero0 не работает для вас, и вы используете Linux, попробуйте

sudo npm install forever -g

Если вы уже пробовали:

sudo npm install forever -g

и до сих пор получаю forever:command not found обратите внимание на первую строку в выводе. Это должно быть что-то вроде:

/<node_bin_path>/forever -> /lib/node_modules/forever/bin/forever

где node_bin_path это место, в котором находится исполняемый файл. Это, скорее всего, не там, где вы ожидаете.

Это может быть потому, что node на вашем пути есть символическая ссылка. В этом случае forever будет установлен в фактическом месте установки node не расположение символической ссылки.

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

npm i forever -g 

Ниже код сценария bash Проверьте, работает ли ваш сценарий. Если не работает Стоп и Старт и уведомление по почте.

Crontab

*/1     *       *       *       *       sh /root/yourscriptdirectory/checklive.sh >> /root/yourscriptdirectory/cron.log 2>&1

checklive.sh

chmod + x./checklive.sh

cd /root/yourscriptdirectory/

ps xa | grep -F "/usr/local/bin/node /root/yourscriptdirectory/script.js"  | grep -Fv "grep"  > /dev/null
if [ $? -eq 0 ]; then
echo ""
else
  echo "script.js not running. Restart"
  /usr/local/bin/node /usr/local/lib/node_modules/forever/bin/forever stop script.js
  /usr/local/bin/node /usr/local/lib/node_modules/forever/bin/forever start script.js
  echo "STOP : script.js Process is stoped restarting..."  | mail -s "STOP : script.js Process is stoped restarting..." "<yourmail@gmail.com>" &
fi

Вероятно, вы недавно перешли на yarn, также. Вместо этого вернитесь к npm (Просто для forever):

sudo npm install forever -g

( g == глобальный)

sudo npm install forever --global

у меня это работало на сервере ubuntu 16.04 и nodejs v7.5.0

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