Навсегда: команда не найдена
Я получаю
Ошибка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