2013-12-11 109 views
7

我想设置流星使用pm2(https://github.com/Unitech/pm2)而不是永远作为节点进程监视器。我没有得到pm2进程需要看到Meteor应用程序的环境变量。PM2 +流星环境设置

这里是我的过程:

export MONGO_URL="mongodb://localhost:27017/meteor" 
export PORT=4000 
export ROOT_URL="https://beta.example.com/" 
pm2 start main.js --name MyMeteorApp 

在从PM2我看到我的流星应用程序时报告说找不到MONGO_URL错误日志。

有没有具体的方法,我需要做出口,以便与pm2工作?

回答

0

做了一些挖掘之后,我找到了正确的答案。在pm2中,将放置在JSON任务定义内的任何不是保留关键字之一的内容都导出到您在pm2内部作为环境变量运行的进程。

+0

如什么变量名? –

1

它与pm2有点奇怪。但是,这样的事情可以工作

pm2 kill 
MONGO_URL="mongodb://localhost:27017/meteor" PORT=4000 ROOT_URL="https://beta.example.com/" pm2 start app.js --name MyMeteorApp 

这是因为包装PM2一切都变成了自己的一个新的进程,不能看到原来的环境变量。我认为这也是一种将环境变量放入JSON文件的方式,但我不确定文档的空间有多清晰

7

您可以创建process.json(PM2车队配置文件)文件,您可以在其中指定环境变量。

例如:

{ 
    "apps": [ 
    { 
     "name": "MyMeteorApp", 
     "script": "./main.js", 
     "log_date_format": "YYYY-MM-DD", 
     "exec_mode": "fork_mode", 
     "env": { 
     "PORT": 4000, 
     "MONGO_URL": "mongodb://localhost:27017/meteor", 
     "ROOT_URL": "https://beta.example.com/" 
     } 
    } 
    ] 
} 

的开始:pm2 start processes.json

+0

有没有添加流星的方法? –

1

围棋和检测PM2-流星。应该帮助你生成一个pm2-env.json。

$ npm i -g pm2-meteor 
$ cd myMeteorProject 
$ pm2-meteor --settings meteor-settings.json