PM2用法简介【命令行启动 --env 参数设置使用问题】
环境切换
正式开发中分为不同的环境(开发环境、测试环境、生产环境),我们需要根据不同的情景来切换各种环境
pm2通过在配置文件中通过env_xx来声明不同环境的配置,然后在启动应用时,通过--env参数指定运行的环境
环境配置定义,在应用中,可以通过process.env.REMOTE_ADDR等来读取配置中生命的变量:
"env": {
"NODE_ENV": "production",
"REMOTE_ADDR": "http://www.example.com/"
},
"env_dev": {
"NODE_ENV": "development",
"REMOTE_ADDR": "http://wdev.example.com/"
},
"env_test": {
"NODE_ENV": "test",
"REMOTE_ADDR": "http://wtest.example.com/"
}
启动指定的环境:pm2 start app.js --env development
pm2会自动在process.env 设置一些参数,比如process.env.name 就是pm2启动的appname
其他参数参考如下:
{
YARN_VERSION: '1.6.0',
HOSTNAME: '952779b5ff4e',
PWD: '/app/yunsiweiservice',
HOME: '/root',
NODE_VERSION: '10.1.0',
'affinity:container': '=bd260641c08bb00736d69b225ec0977ddf3fbed3604bda36d593e2eb29890469',
TERM: 'xterm',
SHLVL: '1',
PATH: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
_: '/usr/local/bin/pm2',
PM2_USAGE: 'CLI',
PM2_HOME: '/root/.pm2',
SILENT: 'true',
windowsHide: 'true',
username: 'root',
instance_var: 'NODE_APP_INSTANCE',
exec_mode: 'cluster_mode',
watch: 'false',
treekill: 'true',
autorestart: 'true',
automation: 'true',
pmx: 'true',
vizion: 'true',
instances: '1',
name: 'yunsiweiservice',
args: '-f,-P,8052,-p,/app/yunsiweiservice',
node_args: '',
pm_exec_path: '/usr/local/lib/node_modules/visop/bin/visop-start',
env: '[object Object]',
pm_cwd: '/app/yunsiweiservice',
exec_interpreter: 'node',
pm_out_log_path: '/root/.pm2/logs/yunsiweiservice-out-11.log',
pm_err_log_path: '/root/.pm2/logs/yunsiweiservice-error-11.log',
pm_pid_path: '/root/.pm2/pids/yunsiweiservice-11.pid',
km_link: 'false',
vizion_running: 'false',
NODE_APP_INSTANCE: '0',
status: 'launching',
pm_uptime: '1529724769233',
axm_actions: '',
axm_monitor: '[object Object]',
axm_options: '[object Object]',
axm_dynamic: '[object Object]',
created_at: '1529724769233',
pm_id: '11',
restart_time: '0',
unstable_restarts: '0',
_pm2_version: '2.10.4'
}
PM2用法简介【命令行启动 --env 参数设置使用问题】的更多相关文章
- Apache Commons CLI官方文档翻译 —— 快速构建命令行启动模式
昨天通过几个小程序以及Hangout源码学习了CLI的基本使用,今天就来尝试翻译一下CLI的官方使用手册. 下面将会通过几个部分简单的介绍CLI在应用中的使用场景. 昨天已经联系过几个基本的命令行参数 ...
- Apache Commons CLI命令行启动
今天又看了下Hangout的源码,一般来说一个开源项目有好几种启动方式--比如可以从命令行启动,也可以从web端启动.今天就看看如何设计命令行启动... Apache Commons CLI Apac ...
- 记一次使用命令行启动部署在tomcat上的应用
在Eclipes进行程序开发完成后,一般都会直接在Eclipse部署启动,其中的一些启动参数设置都会在其中进行,若用命令行启动,则需要手动配置. 程序开发完成后打成的war包,需要部署到Tomcat应 ...
- 转载:使用命令行启动VirtualBox虚拟机
使用命令行启动VirtualBox虚拟机 装上VirtualBox就琢磨着如何让它开机自动启动,又或者能够通过命令行的形式直接启动指定的虚拟机. 看了下VirtualBox的官方文档,发现有一个命令可 ...
- vmware 命令行启动虚拟机
在redhat enterprise 5.3安装了vmware workstation,如何用vmware 命令行启动指定虚拟机?/usr/bin/vmware[root@node0 ~]# /usr ...
- UWP: 通过命令行启动 UWP 应用
最近在开发应用的过程中,我遇到了如标题所述的需求,其实主要是为了能够快捷启动应用,正像我们可以在"运行"对话框中可以输入一些可执行程序的名称后,就能够直接启动它:这样做,可以增加 ...
- 让.Net程序支持命令行启动
很多时候,我们需要让程序支持命令行启动,这个时候则需要一个命令行解析器,由于.Net BCL并没有内置命令行解析库,因此需要我们自己实现一个.对于简单的参数来说,自己写一个字符串比较函数来分析args ...
- Oracle安装完成后,如何用命令行启动和关闭数据库?
Oracle安装完成后,如何用命令行启动和关闭数据库? 解答: 打开:STARTUP [FORCE] [RESTRICT] [PFILE= filename] [OPEN [RECOVER][ dat ...
- scrapy 源码解析 (一):启动流程源码分析(一)命令行启动
前言 虽然爬虫的入门级编写并不难,但要让爬虫真正稳定可靠的运行起来,真不是一件容易的事.首先,要用到scrapy,就必须要读懂scrapy这个爬虫框架,如果连这个框架的执行逻辑都搞不懂,那么爬虫也很难 ...
随机推荐
- c# 方法的隐藏
- SQL注入是什么?如何防止?
SQL注入是什么?如何防止? SQL注入是一种注入攻击,可以执行恶意SQL语句.下面本篇文章就来带大家了解一下SQL注入,简单介绍一下防止SQL注入攻击的方法,希望对大家有所帮助. 什么是SQL注入? ...
- BUUCTF复现记录2
[CISCN2019 华北赛区 Day1 Web1]Dropbox 打开题目,一个登录界面,SQL? sqlmap跑一下,没有注入,那么注册一下 登录之后,发现只有一个上传页面,源码里面也没有什么 那 ...
- ZZNU - OJ - 2080 : A+B or A-B【暴力枚举】
2080 : A+B or A-B(点击左侧标题进入zznu原题页面) 时间限制:1 Sec 内存限制:0 MiB提交:8 答案正确:3 提交 状态 讨论区 题目描述 Give you three s ...
- Herbert Schildt
赫伯特·希尔特; Herbert Schildt,是世界顶级程序设计大师,全球顶尖编程图书作者之一. www.HerbSchildt.com 1.c/c++的核心设计原理之一就是程序员的控制,java ...
- 使用宏定义来判断是a和b 的大小
#include <stdio.h> #include <math.h> #define MAX(a, b) (a) > (b) ? printf("a > ...
- 云计算(9)--Gossip:multicast problem
Gossip/Epidemic ptotocol 解决的问题是multicast problem Gossip 协议是电脑之间的通信协议,受启发与现实社会的流言蜚语.现代分布式系统通常用gossip协 ...
- BZOJ 2699: 更新 (DP)
题目 对于一个数列A[1-N],一种寻找最大值的方法是:依次枚举A[2]到A[N],如果A[i]比当前的A[1]值要大,那么就令A[1]=A[i],最后A[1]为所求最大值.假设所有数都在范围[1, ...
- Codeforces Round #528 (Div. 2)题解
Codeforces Round #528 (Div. 2)题解 A. Right-Left Cipher 很明显这道题按题意逆序解码即可 Code: # include <bits/stdc+ ...
- 「CF150E」Freezing with Style「点分治」「单调队列」
题意 给定一颗带边权的树,求一条边数在\(L\).\(R\)之间的路径,并使得路径上边权的中位数最大.输出一条可行路径的两个端点.这里若有偶数个数,中位数为中间靠右的那个. \(n, L, R\leq ...