您可以按照此票证所述进行 *** 作:https :
//github.com/Unitech/pm2/issues/13
尽管如果通过环境,则可能需要考虑利用环境变量。使用此工具,您可以创建一个变量,该环境中的任何进程都可以访问该变量
process.env.*。
因此,您有一个配置文件
config.json:
{ "dev": { "db": { "hosts":["localhost"], "database": "api" }, "redis": { "hosts": ["localhost"] } }, "staging": { "db": { "hosts":["1.1.1.1"], "database": "api" }, "redis": { "hosts": ["2.2.2.2"] } }, "production": { "db": { "hosts":["1.1.1.1", "1.1.1.2", "1.1.1.3"], "database": "api" }, "redis": { "hosts": ["2.2.2.2", "2.2.2.3"] } }}
然后,您导入配置:
var config=require('./config.json')[process.env.NODE_ENV || 'dev'];db.connect(config.db.hosts, config.db.database);
然后,您将通过shell在您的环境中设置变量:
export NODE_ENV=stagingpm2 start app.js
环境变量将持续到您的会话。因此,您必须在该
~/.bashrc用户的文件中设置它,变量才能持久。这将在每个会话中设置变量。
PM2具有一个部署系统,通过该系统,您可以在每次守护程序之前设置环境变量。这是POSIX系统中守护程序通常采用参数的方式,因为这些参数不会随过程丢失。考虑到您的情况,它可能无关紧要,但它是一种很好的做法。
此外,您应该考虑在本地停止/启动,并在可能的情况下尽可能重新启动(如果处于群集模式),以防止生产中的停机时间。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)