我用流星写了一个简单的应用程序。我用风向标来消除它对流星的依赖。现在,我已经将我的风范包上传到了一个甘地NodeJS简单托管实例。我可以让它在控制台上运行,但是当我重新启动实例时,我不能让它自动运行。
我将默认的server.js移除在实例启动时运行的方式。它所包含的内容如下:
var http = require("http");
http.createServer(function(req, res) {
res.writeHead(200, {"Content-Type": "text/html; charset=utf-8"});
res.end('<!DOCTYPE html><html><meta charset="utf-8"><title>It works' +
"</title><b>It works!</b><br /><br />This is the server's " +
"default server.js.");
}).listen(8080);
console.log("Server ready to accept requests on port 8080");它在我的本地机器上运行风向器,它创建了一个project.json文件,我将其与包的其余部分一起上传到vhost/缺省dir:
hosting-user@Secret-History-Node-Test:~/web/vhosts/default$ more package.json
{
"name": "secrethistory",
"description": "secrethistory - automatically converted by Demeteorizer. https
://github.com/onmodulus/demeteorizer",
"version": "0.0.1",
"main": "main.js",
"scripts": {
"start": "node main.js"
},
"engines": {
"node": "0.10.36"
},
"dependencies": {
"websocket-driver": ">=0.4.0",
"faye-websocket": "^0.7.3 || ^0.8.0",
"node-uuid": "^1.4.1",
"sockjs": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.11.tgz",
"es5-ext": "~0.9.2",
"event-emitter": "~0.2.2",
"next-tick": "0.1.x",
"memoizee": "~0.2.5",
"cli-color": "https://registry.npmjs.org/cli-color/-/cli-color-0.2.3.tgz",
"css-parse": "https://github.com/reworkcss/css-parse/tarball/aa7e23285375ca6根据动态气象器文档,在启动节点之前,必须设置几个env变量。使用下面的命令行,我可以成功地运行我的应用程序。
export MONGO_URL=mongodb://localhost:27017/secrethistory
export PORT=8080
export ROOT_URL=http://localhost:8080
node main(这些值有点违背直觉,与许多风度气象器教程的状态相矛盾,但它直接来自气象医生并起作用。)
考虑到我对简单托管启动脚本的访问有限,我不知道如何在节点启动时启动我的应用程序,也不知道如何在运行之前设置环境变量。
当PAAS实例被引导时,你能帮我找出如何让我的应用程序运行吗?
更多信息
下面是如何从实例中运行节点:
hosting-user@Secret-History-Node-Test:~/web/vhosts/default$ ps -ef | grep node
5000 73 1 0 06:06 ? 00:00:00 python /srv/admin/scripts/watchd --logfile /srv/data/var/log/www/nodejs-watchd.log --pidfile /srv/run/nodejs/nodejs-watchd.pid --app-logfile /srv/data/var/log/www/nodejs.log --app-dir /srv/data/web/vhosts/default /srv/admin/scripts/nodejs/node-bootstrap.sh发布于 2015-02-08 23:12:06
最后我通过摆弄弄明白了。虽然我认为可能会有一个更清洁的解决方案。
我在project.json中的脚本指令中将env添加到起始行。
"start": "MONGO_URL=mongodb://localhost:27017/secrethistory PORT=8080 ROOT_URL=http://localhost:8080 node main.js"我证实了这件事
npm start现在,如何使npm启动时发生服务器启动?
我以JS包的形式安装了永久监视器,但没有安装CLI,因为我无法从PAAS实例的控制台访问系统。
然后,我创建了一个简单的server.js,它在实例启动时自动运行:
var forever = require('forever-monitor');
var child = forever.start(['npm start'], {
'max': 3,
'silent' : true
});欢迎提出建议。
发布于 2015-02-21 17:56:17
端口env变量在默认情况下是可用的发挥作用
https://stackoverflow.com/questions/28391428
复制相似问题