我刚在EC2 ubuntu服务器上部署了一个meteor js app。我安装了forever 并将以下启动脚本添加到/etc/init/meteor.conf
start on (local-filesystems)
stop on shutdown
script
cd /home/ubuntu
export PORT=80 MONGO_URL=mongodb://localhost27017/parties ROOT_URL=http://ec2-54-235-1-185.compute-1.amazonaws.com
exec forever start bundle/main.js
end script
当我使用sudo service meteor start
启动我的应用时,它显示为:
meteor start/running, process 12481
ubuntu@ip-10-98-57-161:~$
但是当我在浏览器中输入公共DNS时,没有。
然后我输入命令forever list
,它列出了三行,包含一些信息和一列日志文件。所以我然后打开vim中的最后一个日志文件来查看它的内容,我看到以下错误:
/home/ubuntu/bundle/programs/server/boot.js:184
}).run();
^
Error: MONGO_URL must be set in environment
at Object.<anonymous> (packages/mongo-livedata/remote_collection_driver.js:32)
at Object._.once [as defaultRemoteCollectionDriver] (packages/underscore/underscore.js:704)
at new Meteor.Collection (packages/mongo-livedata/collection.js:66)
at packages/service-configuration/service_configuration_common.js:8
at packages/service-configuration.js:43:4
at packages/service-configuration.js:52:3
at mains (/home/ubuntu/bundle/programs/server/boot.js:153:10)
at Array.forEach (native)
at Function._.each._.forEach (/home/ubuntu/bundle/programs/server/node_modules/underscore/underscore.js:79:11)
at /home/ubuntu/bundle/programs/server/boot.js:80:5
error: Forever detected script exited with code: 1
我尝试了十种不同的启动应用程序的方法,每次我都会遇到同样的错误。 值得一提的是:当我使用以下方式运行我的应用程序时:
sudo PORT=80 MONGO_URL=mongodb://localhost:27017/parties ROOT_URL=http://ec2-54-235-1-185.compute-1.amazonaws.com node bundle/main.js
它启动了,我可以通过我的公共DNS访问它,但当然,只要我关闭终端,应用就会死掉。
有人知道如何解决这个问题吗?
答案 0 :(得分:2)
export PORT=80 MONGO_URL=mongodb://localhost:27017/parties ROOT_URL=http://ec2-54-235-1-185.compute-1.amazonaws.com
你尝试过吗?
答案 1 :(得分:-1)
尝试将其永久直接传递而不使用导出:
exec PORT=80 MONGO_URL=mongodb://localhost27017/parties ROOT_URL=http://ec2-54-235-1-185.compute-1.amazonaws.com forever start bundle/main.js
它可能与权限有关,当使用启动脚本时,用户可能会拥有自己的变量范围。