永远:找不到命令

时间:2014-05-03 14:20:43

标签: node.js amazon-ec2 forever

我正在

使用forever命令作为cronjob(在amazon ec2机器中)运行nodejs进程时,

永远:命令未找到错误: 我正在使用的bash脚本具有以下代码:

cd到/ location / of / the / nodejs / file

永远启动file.js

但我可以使用bash script.sh运行此文件,但是当我通过cronjob运行时,我得到了forever:command not found错误

我很困惑,不知道这可能是什么原因。

还有其他人遇到过这个问题吗?

提前致谢

7 个答案:

答案 0 :(得分:42)

嘿面临同样的问题

使用了npm install forever -g,问题解决了......也许这也会帮助你

答案 1 :(得分:9)

对于遇到此问题的其他用户:

你必须添加forever模块的路径,然后将脚本作为cronjob运行。

在linux中,路径通常是:

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

在您的脚本中使用此命令,错误永远:找不到命令不会打扰您。

我知道必须有一些其他奇特的方法来做到这一点,但我很高兴这个黑客

答案 2 :(得分:8)

如果azero0的解决方案对您不起作用并且您正在运行Linux,请尝试

sudo npm install forever -g

答案 3 :(得分:3)

如果您已经尝试过:

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的实际安装位​​置,而不是符号链接的位置。

答案 4 :(得分:0)

sudo npm install forever --global

这对我在ubuntu 16.04服务器和nodejs v7.5.0

上工作

答案 5 :(得分:0)

似乎永远不会在全球范围内找到,请使用以下命令来解决

npm i forever -g 

答案 6 :(得分:0)

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