Je reçois un
forever: commande introuvable error lorsque j'exécute un processus nodejs à l'aide de la commande forever en tant que travail cron (sur une machine Amazon ec2): le script bash que j'utilise utilise le code suivant:
cd dans/location/of/the/nodejs/file
démarrer toujours file.js
mais je suis capable d'exécuter ce fichier en utilisant bash script.sh mais j'obtiens toujours: erreur de commande introuvable lorsque je l'exécute via cronjob
Je suis confus ne sais pas quelle pourrait en être la raison.
Quelqu'un d'autre a-t-il rencontré ce problème?
Merci d'avance
Hey était confronté au même problème
npm install forever -g
utilisé et mon problème est résolu ... peut-être que ça vous aidera aussi
au cas où la solution de azero0 ne fonctionnerait pas pour vous et que vous utilisiez Linux, essayez
Sudo npm install forever -g
Pour les autres utilisateurs confrontés à ce problème:
vous devez ajouter le chemin du module forever, puis exécuter le script en tant que tâche cron.
Sous Linux, le chemin est normalement:
/usr/local/lib/node_modules/forever/bin/forever start fichier.js
utilisez simplement cette commande dans votre script et l'erreur forever: commande non trouvée ne vous dérangera pas.
Je sais qu'il doit y avoir d'autres moyens sophistiqués de le faire, mais je suis heureux avec ce bidouillage
Si vous avez déjà essayé:
Sudo npm install forever -g
et toujours obtenir forever:command not found
faites attention à la première ligne de la sortie. Cela devrait être quelque chose comme:
/<node_bin_path>/forever -> /lib/node_modules/forever/bin/forever
où node_bin_path
est l'endroit où se trouve l'exécutable. Ce n'est probablement pas où vous vous attendez.
Cela peut être dû au fait que node
dans votre chemin est un lien symbolique. Dans ce cas, forever
sera installé à l'emplacement d'installation réel de node
et non à l'emplacement du lien symbolique.
il semble pour toujours pas trouvé dans globalement, utilisez la commande ci-dessous pour résoudre
npm i forever -g
Ci-dessous, le code de script bash Vérifiez votre script en cours d'exécution. Si vous n'exécutez pas Stop and Start et le courrier de notification.
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..." "<[email protected]>" &
fi
Sudo npm install forever --global
cela a fonctionné pour moi sur le serveur Ubuntu 16.04 et la version 7.5.0 de nodejs