在重新启动后永远在cronjob中的nodejs应用程序不起作用

时间:2015-07-25 09:31:38

标签: node.js ubuntu cron forever

我用sudo crontab -u USERNAME -e创建了一个cronjob,并尝试在每次重启后启动我的node.js应用。

它在其他服务器上运行良好。

但这一次,我通过nvm

安装了Node.js.

然后尝试运行相同的cronjob行,但每次重启后都失败了。我试图找出所有相关的文件夹,并再次尝试以不同的行运行。当我查看forever list时,服务器显示没有进程正在运行。

@reboot /home/USERNAME/.npm/forever start -c /home/USERNAME/.nvm/current/bin/node  /home/USERNAME/APPNAME/app
@reboot /home/USERNAME/.npm/forever start  /home/USERNAME/APPNAME/app
@reboot /usr/local/bin/forever start -c /home/USERNAME/.nvm/current/bin/node  /home/USERNAME/APPNAME/app

我认为原因与nvm有某种关联。但我不确定。除非我完全确定,否则我不想做任何不必要的事情。

2 个答案:

答案 0 :(得分:1)

2015年7月26日编辑

虽然我已经使用npm的forever模块来部署nodejs生产应用程序,但我真的不认为需要在基于Linux的服务器上使用它,因为有太多的系统级替代品可用。

其中一个是暴发户。它将帮助您将脚本作为系统级服务运行。 Amazon Web Services还在其Elastic Beanstalk nodejs层中使用upstart来保持nodejs应用程序永久运行。

如果您真的需要了解它,可以使用link作为新贵服务运行您的nodejs应用。

但是,它不仅限于部署nodejs应用程序,如果您学习新贵,您将能够使用它做很多事情。这也是link

答案 1 :(得分:0)

如果您的原始方法更可取(就像我的情况那样),您可以通过显式将路径传递给节点来修复计划的cron作业,如下所示:(在this answer中找到)

@reboot /root/.nvm/versions/node/v7.1.0/bin/node /root/.nvm/versions/node/v7.1.0/bin/forever start /var/www/server.json

显然,NVM通过设置一些在cron作业运行时没有设置的系统路径来发挥作用。