Навсегда: команда не найдена
Я получаю
навсегда: команда не найдена ошибка при запуске процесса nodejs с помощью команды forever в качестве cronjob (на машине amazon ec2): bash скрипт я использую имеет следующий код:
cd to/location/of/the/nodejs/file
навсегда запустить файл.js
но я могу запустить этот файл с помощью bash script.sh но я получаю forever: команда не найдена ошибка, когда я запускаю ее через cronjob
Я путать не знаю, что может быть причиной этого.
кто-нибудь еще сталкивался с этой проблемой?
спасибо заранее
7 ответов
Эй столкнулся с той же проблемой
используется npm install forever -g
и моя проблема решена... может быть, это поможет вам также
если решение azero0 не работает для вас, и вы используете linux, попробуйте
sudo npm install forever -g
для других пользователей, которые сталкиваются с этой проблемой:
вы должны добавить путь к модулю forever, а затем запустить скрипт как cronjob.
в linux путь обычно:
/ usr / local/lib/node_modules/forever/bin / навсегда начать файл.js
просто используйте эту команду в скрипт и ошибка навсегда:команда не найдена не будет беспокоить вас.
Я знаю, что должны быть какие-то другие причудливые способы сделать это, но Я доволен этим Хак
если вы уже пробовали:
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 проверьте, работает ли ваш скрипт. Если не работает Stop и Start и уведомление mail.
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