我有一个运行在Amazon EC2服务器上的简单流星应用程序.一切都很好.我通过项目目录中的流星与用户手动启动它.
但是,我想要这个应用程序
>开机启动
>不受挂断的困扰
我尝试通过nohup流星&运行它,但是当我尝试注销EC2实例时,出现“您有正在运行的作业”消息.继续注销将停止该应用程序.
如何使应用程序在启动时启动并保持运行状态(除非由于某种原因而崩溃)?
解决方法:
安装forever并使用启动脚本.
$npm install -g forever
我有几个用于管理生产环境的脚本-启动脚本如下所示:
#!/bin/bash
forever stopall
export MAIL_URL=...
export MONGO_URL=...
export MONGO_OPLOG_URL=...
export PORT=3000
export ROOT_URL=...
forever start /home/ubuntu/apps/myapp/bundle/main.js
exit 0
方便地,它还将追加到〜/ .forever中的日志文件中,该文件将显示运行应用程序时遇到的任何错误.您可以通过以下方式获取日志文件的位置以及有关您应用的其他统计信息:
$forever list
为了使您的应用程序在启动时启动,您需要做一些适合您的linux风格的事情.您可能只是将启动脚本放在/etc/rc.local中.有关Ubuntu的信息,请参见this question.
还要注意,如果在生产环境中使用应用程序,则应将其捆绑在一起.有关差异的更多详细信息,请参见this comparison.