pm2 是一个带有负载均衡功能的 Node 应用的进程管理器。

1. pm2 主要特点

  • 内建负载均衡(使用Node cluster 集群模块)
  • 保持后台运行
  • 进程守护,系统崩溃后自动重启
  • 启动多进程,充分利用CPU和内存
  • 自带日志记录功能
  • 控制台检测
  • 提供 HTTP API

2. pm2 安装及常用命令

安装

  1. $ npm install pm2 -g // 全局安装
  2. $ pm2 --version // 查看版本

pm2 命令

启动(入口文件为app.js, 配置文件为pm2.conf.json):

  1. // 直接启动
  2. $ pm2 start app.js
  3. // 通过配置文件启动
  4. $ pm2 start app.js

查看启动历史:

  1. $ pm2 list

重启:

修改代码后需要执行:

  1. $ pm2 restart <AppName>/<id>
  2. <!-- <AppName>/<id> 可通过 pm2 list 查看-->

停止进程(可重新启动)

  1. $ pm2 stop <AppName>/<id>

删除进程(不可重新启动)

  1. $ pm2 delete <AppName>/<id>

其他命令

  1. pm2 info <AppName>/<id> // 查看进程详细信息
  2. pm2 log <AppName>/<id> // 查看进程日志, 执行后,可进行线上调试,查看打印日志
  3. pm2 monit <AppName>/<id> // 打开监控 logs

3. pm2 常用配置

根目录下,新建空文件 /logs/err.log 和 /logs/out.log

新建配置文件 pm2.conf.json

pm2.conf.json:

  1. {
  2. "apps": {
  3. "name": "pm2-test-server", // 起个进程名,即AppName
  4. "script": "app.js", // 启动的入口文件(koa2项目中为/bin/www.js)
  5. "watch": true, // 监听文件变化,自动重启
  6. "ignore_watch": [ // 不需要监听的文件
  7. "node_modules",
  8. "logs"
  9. ],
  10. "instances": 4, // 设置多进程
  11. "error_file": "logs/err.log", // 错误日志存储的文件
  12. "out_file": "logs/out.log", // console.log()打印的都会放进去
  13. "log_date_format": "YYYY-MM-DD HH:mm:ss" // 给每行日志标记一个时间
  14. }
  15. }

修改package.json:

  1. {
  2. "name": "pm2-test",
  3. "version": "1.0.0",
  4. "description": "",
  5. "main": "index.js",
  6. "scripts": {
  7. "test": "echo \"Error: no test specified\" && exit 1",
  8. "dev": "cross-env NODE_ENV=dev nodemon app.js",
  9. "prd": "cross-env NODE_ENV=production pm2 start pm2.conf.json"
  10. },
  11. "keywords": [],
  12. "author": "",
  13. "license": "ISC",
  14. "dependencies": {
  15. ...
  16. "cross-env": "^5.2.0",
  17. "nodemon": "^1.19.1"
  18. ...
  19. }
  20. }

配置完后,执行下面命令,即可启动项目

  1. $ npm run prd

PM2 对 Node 项目进行线上部署与配置的更多相关文章

  1. 使用HDFS来进行线上应用的文件存储

    使用HDFS来进行线上应用的文件存储 分类: 云计算2011-07-06 17:57 721人阅读 评论(0) 收藏 举报 hadoop任务集群存储数据分析服务器 这段时间公司使用的hadoop组件h ...

  2. 【运维技术】node项目使用strongloop进行部署相关教程

    node项目使用strongloop进行部署相关教程 安装strongloop 下载安装node 解压到路径完成安装 使用软链方式配置环境变量 添加cnpm的淘宝镜像源 安装node-gyp的模块依赖 ...

  3. Win10上部署Apollo配置中心

    基于Docker在Win10上部署Apollo配置中心 https://www.jianshu.com/p/a1215056ce75 http://nobodyiam.com/2016/07/09/i ...

  4. node项目发布+域名及其二级域名配置+nginx反向代理+pm2

    学习node的时候也写了一些demo.但是只是限于本地测试,从来没有发布.今天尝试发布项目. 需要准备的东西 node 项目:为了突出重点,说明主要问题.我只是拿express 写了很简单的demo. ...

  5. 在 Windows Azure 上部署预配置 Oracle VM

    Microsoft 和 Oracle 近期宣布建立战略合作伙伴关系,基于此,我们将通过 Windows Azure 镜像库推出多种常用的 Oracle 软件配置.即日起,客户可以在 Windows S ...

  6. 构建一个 预装 pm2 的 node 项目 docker 底包

    Dockerfile: 创建 dockerfile 文件, 命名为 dockerfile-yourProject-node.8.12.0-pm2 # MAGE: yourGroup/yourProje ...

  7. 转:使用xhprof进行线上PHP性能追踪及分析

    原文来自于:http://avnpc.com/pages/profiler-php-performance-online-by-xhprof 原创作者:AlloVince 之前一直使用基于Xdebug ...

  8. Apache DolphinScheduler & Doris 将于本周六联合进行线上 Meetup

    01 - 活动介绍 2020年,大数据成为国家基建的一个重要组成,大数据在越来越多的领域展现威力.随着大数据的应用场景越来越多,大家对数据的响应速度和数据加工工作流的方便程度也提出了更高的要求.在这种 ...

  9. 如何使用工具进行线上 PHP 性能追踪及分析?

    工作了一两年的 PHPer 大概都多多少少知道一些性能分析的工具,比如 Xdebug.xhprof.New Relic .OneAPM.使用基于 Xdebug 进行 PHP 的性能分析,对于本地开发环 ...

随机推荐

  1. Xamarin.FormsShell基础教程(8)Shell的模版构成

    Xamarin.FormsShell基础教程(8)Shell的模版构成 Shell模版创建的页面包含内容页.标签栏.侧滑菜单.搜索框四部分.下面依次介绍这几个部分. 内容页:内容页就是为用户呈现内容的 ...

  2. mysql索引本质

    一.索引帮助mysql高效获取数据排好序的数据结构. 二.索引存储位置:磁盘文件. 三.索引结构:二叉树.红黑树.hash.BTree.B+Tree .索引结构为了更快找到目标数据. 四.数据结构 4 ...

  3. java.lang.UnsupportedOperationException 异常分析

    今天将一个数组转换成 List 然后进行 remove 操作时却抛出 java.lang.UnsupportedOperationException 异常. String pattern = &quo ...

  4. Egret自定义位图文字(自定义+BitmapLabel)

    一 自定位图文字 因为egret的位图文字是texturemerger做的,需要多张单图片导入tm,然后导出两个文件来使用,过程比较麻烦. 而Laya的位图文字则是一张整图数字图片,使用FontCli ...

  5. Docker守护式容器

    1.什么是守护式容器 能够长期运行 没有交互式会话 适合运行应用程序和服务 2.以守护形式运行容器 运行交互式容器时以Ctrl+P Ctrl+Q 来退出容器,此时容器还在后台继续运行,我们可以通过do ...

  6. Springboot+Quartz+druid+多库

    很久以前就用过quartz,现在重新用起,主要实现集群方式启动,并且支持多数据源注入到job中.网上demo很多,方法大同小异.但关于数据源注入的深入介绍不多,不错的文章:<spring-boo ...

  7. FFmpeg在VS2017下的编译

    今天无意中在gayhub发现个牛逼工程,全VS工程编译FFMPEG库,包括依赖库全是VS生成的,无需Mingw等Linux环境. 简单记录下过程,以防将来重装系统等情况,备忘. https://git ...

  8. Zabbix 3.0 配置企业微信报警(注册---测试)

    一.申请企业微信 1.登录企业微信官网,点击企业注册 二.配置企业微信 1.邀请管理员使用企业微信,如果有多个人直接添加新成员 2.管理员收到邀请,下载手机版企业微信,使用微信号登陆即可 3.创建应用 ...

  9. IIS指定站点网卡IP进行网络部署

    服务器一般有多块网卡,有时候每块网卡会绑定不同的公网ip,也就是一个机器可以有多个公网ip,那IIS部署时可以选择此项目使用那个IP部署.(当然,一块网卡也可以绑定多个IP) 编辑绑定-编辑-IP地址 ...

  10. AIOps基本概念以及能力分级

    AIOps 自从 Gartner 于2016年提出至今已有一段时间,虽然在顶级互联网及电信企业,已有较多落地,但至今仍无基于生产实践的理论体系及实施指南. 高效运维社区和云计算开源产业联盟(OSCAR ...