环境切换

正式开发中分为不同的环境(开发环境、测试环境、生产环境),我们需要根据不同的情景来切换各种环境
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 参数设置使用问题】的更多相关文章

  1. Apache Commons CLI官方文档翻译 —— 快速构建命令行启动模式

    昨天通过几个小程序以及Hangout源码学习了CLI的基本使用,今天就来尝试翻译一下CLI的官方使用手册. 下面将会通过几个部分简单的介绍CLI在应用中的使用场景. 昨天已经联系过几个基本的命令行参数 ...

  2. Apache Commons CLI命令行启动

    今天又看了下Hangout的源码,一般来说一个开源项目有好几种启动方式--比如可以从命令行启动,也可以从web端启动.今天就看看如何设计命令行启动... Apache Commons CLI Apac ...

  3. 记一次使用命令行启动部署在tomcat上的应用

    在Eclipes进行程序开发完成后,一般都会直接在Eclipse部署启动,其中的一些启动参数设置都会在其中进行,若用命令行启动,则需要手动配置. 程序开发完成后打成的war包,需要部署到Tomcat应 ...

  4. 转载:使用命令行启动VirtualBox虚拟机

    使用命令行启动VirtualBox虚拟机 装上VirtualBox就琢磨着如何让它开机自动启动,又或者能够通过命令行的形式直接启动指定的虚拟机. 看了下VirtualBox的官方文档,发现有一个命令可 ...

  5. vmware 命令行启动虚拟机

    在redhat enterprise 5.3安装了vmware workstation,如何用vmware 命令行启动指定虚拟机?/usr/bin/vmware[root@node0 ~]# /usr ...

  6. UWP: 通过命令行启动 UWP 应用

    最近在开发应用的过程中,我遇到了如标题所述的需求,其实主要是为了能够快捷启动应用,正像我们可以在"运行"对话框中可以输入一些可执行程序的名称后,就能够直接启动它:这样做,可以增加 ...

  7. 让.Net程序支持命令行启动

    很多时候,我们需要让程序支持命令行启动,这个时候则需要一个命令行解析器,由于.Net BCL并没有内置命令行解析库,因此需要我们自己实现一个.对于简单的参数来说,自己写一个字符串比较函数来分析args ...

  8. Oracle安装完成后,如何用命令行启动和关闭数据库?

    Oracle安装完成后,如何用命令行启动和关闭数据库? 解答: 打开:STARTUP [FORCE] [RESTRICT] [PFILE= filename] [OPEN [RECOVER][ dat ...

  9. scrapy 源码解析 (一):启动流程源码分析(一)命令行启动

    前言 虽然爬虫的入门级编写并不难,但要让爬虫真正稳定可靠的运行起来,真不是一件容易的事.首先,要用到scrapy,就必须要读懂scrapy这个爬虫框架,如果连这个框架的执行逻辑都搞不懂,那么爬虫也很难 ...

随机推荐

  1. oracle concepts学习

    祭图一张!!!

  2. 异常-java.util.concurrent.TimeoutException: Futures timed out after [100000 milliseconds]

    1 详细异常 java.util.concurrent.TimeoutException: Futures timed out after [100000 milliseconds] at scala ...

  3. kali linux Desktop Environemt types and kali linux install virualbox

    1.we know the kali linux desktop environmet can also be costomized ,Desktop environmet can use GNOME ...

  4. Makefile中 的 phony target,empty target

    phony target Makefile的语法很简单 <target> : <prerequisites> [tab] <commands> 目标.先决条件.命令 ...

  5. LeetCode:135. 分发糖果

    LeetCode:135. 分发糖果 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分 ...

  6. Lorenzo Von Matterhorn(map的用法)

    http://www.cnblogs.com/a2985812043/p/7224574.html 解法:这是网上看到的 因为要计算u->v的权值之和,我们可以把权值放在v中,由于题目中给定的u ...

  7. certbot更新错误

    自动更新老是提示这个错误. root@vultr:~/certbot# ./certbot-auto Upgrading certbot-auto 0.29.1 to 0.34.2... Couldn ...

  8. 个人项目———Java实现WordCount

    2018年系统分析与设计—个人项目作业 题目来自于 :https://edu.cnblogs.com/campus/xnsy/2018Systemanalysisanddesign/homework/ ...

  9. unittest----assert断言的使用

    unittest的官发文档链接:https://docs.python.org/2.7/library/unittest.html#unittest.TestCase 先介绍下unittest的基本使 ...

  10. Java8新特性--函数式编程

    在jdk8中什么是函数式接口: 1.被@FunctionalInterface注解修饰的. 2.接口里边只有一个非default的方法. 满足以上2个条件的即为函数式接口,ps:即使一个接口没有被@F ...