pm2 是一个带有负载均衡功能的Node应用的进程管理器,当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, pm2是完美的。

主要特性:

  • 内建负载均衡(使用Node cluster 集群模块)
  • 后台运行
  • 0秒停机重载,我理解大概意思是维护升级的时候不需要停机
  • 具有Ubuntu和CentOS 的启动脚本
  • 停止不稳定的进程(避免无限循环)
  • 控制台检测
  • 提供 HTTP API
  • 远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )

安装:

npm install -g pm2

用法:

  • npm install pm2 -g # 命令行安装 pm2
  • pm2 start app.js -i 4 #后台运行pm2,启动4个app.js                # 也可以把'max' 参数传递给 start             # 正确的进程数目依赖于Cpu的核心数目
  • pm2 start app.js --name my-api # 命名进程
  • pm2 list # 显示所有进程状态
  • pm2 monit # 监视所有进程
  • pm2 logs # 显示所有进程日志
  • pm2 stop all # 停止所有进程
  • pm2 restart all # 重启所有进程
  • pm2 reload all # 0秒停机重载进程 (用于 NETWORKED 进程)
  • pm2 stop 0 # 停止指定的进程
  • pm2 restart 0 # 重启指定的进程
  • pm2 startup # 产生 init 脚本 保持进程活着
  • pm2 web # 运行健壮的 computer API endpoint
  • pm2 delete 0 # 杀死指定的进程
  • pm2 delete all # 杀死全部进程

运行进程的不同方式:

  • pm2 start app.js -i max # 根据有效CPU数目启动最大进程数目
  • pm2 start app.js -i 3 # 启动3个进程
  • pm2 start app.js -x #用fork模式启动 app.js 而不是使用 cluster
  • pm2 start app.js -x -- -a 23 # 用fork模式启动 app.js 并且传递参数 (-a 23)
  • pm2 start app.js --name serverone # 启动一个进程并把它命名为 serverone
  • pm2 stop serverone # 停止 serverone 进程
  • pm2 start app.json # 启动进程, 在 app.json里设置选项
  • pm2 start app.js -i max -- -a 23 #在--之后给 app.js 传递参数
  • pm2 start app.js -i max -e err.log -o out.log # 启动 并 生成一个配置文件
  • 你也可以执行用其他语言编写的app ( fork 模式):
  • pm2 start my-bash-script.sh -x --interpreter bash
  • pm2 start my-python-script.py -x --interpreter python

效果图:

pm2在node中的应用的更多相关文章

  1. node.js&pm2搭建node生产环境

    node.js下载地址https://nodejs.org/en/download/stable/ 下载截图 建议采用稳定编译过的版本,source code稍麻烦,编译过的直接可用,安装超级简单,红 ...

  2. 使用PM2守护Node.js应用

    PM2简介 PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控.自动重启.负载均衡等,而且使用非常简单.   安装PM2 $ npm install pm2 -g ...

  3. pm2部署node应用

    背景: 很早就知道了pm2的强大功能,部署,多进程部署,负载均衡等等,但是一直没有取尝试使用,每次写完代码就没关心部署的事了.最近有空就想着把pm2的部署流程走一遍,顺便整理出来. 环境: 1.本地: ...

  4. node中的Stream-Readable和Writeable解读

    在node中,只要涉及到文件IO的场景一般都会涉及到一个类-Stream.Stream是对IO设备的抽象表示,其在JAVA中也有涉及,主要体现在四个类-InputStream.Reader.Outpu ...

  5. 深入理解jQuery、Angular、node中的Promise

    最初遇到Promise是在jQuery中,在jQuery1.5版本中引入了Deferred Object,这个异步队列模块用于实现异步任务和回调函数的解耦.为ajax模块.队列模块.ready事件提供 ...

  6. Node中的定时器详解

    在大多数的业务中,我们都会有一些需求,例如几秒钟实现网页的跳转,几分钟对于后台数据进行清理,node与javascript都具有将代码延迟一段时间的能力.在node中可以使用三种方式实现定时功能:超时 ...

  7. node中的可读流和可写流

    javascript的一个不足之处是不能处理二进制数据,于是node中引入了Buffer类型.这个类型以一个字节(即8位)为单位,给数据分配存储空间.它的使用类似于Array,但是与Array又有不同 ...

  8. node中的Readable - flowing/non-flowing mode

    大家都知道在node中Readable Stream有两种模式: flowing mode和non-flowing mode. 对于flowing mode的Readable Stream, 我们是没 ...

  9. 清理8组nodes中表的历史数据,平均每个node中的表有1.5亿条记录,需要根据date_created字段清理8000W数据记录,这个字段没有索引。

    清理8组nodes中表的历史数据,平均每个node中的表有1.5亿条记录,需要根据date_created字段清理8000W数据记录,这个字段没有索引. 环境介绍  线上磁盘空间不足,truncate ...

随机推荐

  1. JDBC mysql 中文查询不到数据解决

    问题现象: Selenium自动测试中,使用JDBC查询mysql数据库中数据,查询条件为中文,例如: select * from XXX where name ='我是测试数据'; 查询结果为空:但 ...

  2. Oracle TNS Listener Remote Poisoning

    Oracle TNS Listener Remote Poisoning 远程数据投毒漏洞(CVE-2012-1675) 1.漏洞简介: 允许攻击者在不提供用户名/密码的情况下,向远程“TNS Lis ...

  3. win10下安装mysql-5.7.25-winx64

    Step1 官方下载地址 https://dev.mysql.com/downloads/mysql/ 选择手动下载版本 mysql-5.7.25-winx64.zip 解压到自己指定的路径 上图中的 ...

  4. debian下安装 locale 并设置 zh_CN.UTF-8 [转]

    root@Linkstation :~# apt-get install locales root@Linkstation:~# dpkg-reconfigure locales root@Links ...

  5. native2ascii -- 编码转化工具

    参考文档 http://blog.chinaunix.net/uid-692788-id-2681133.html 功能说明 Java 编译器和其它 Java 工具只能处理含有 Latin-1 和/或 ...

  6. 【算法】C++用链表实现一个箱子排序附源代码详解

    01 箱子排序 1.1 什么是分配排序? 分配排序的基本思想:排序过程无须比较关键字,而是通过"分配"和"收集"过程来实现排序.它们的时间复杂度可达到线性阶:O ...

  7. P3994 高速公路

    题目链接 题意分析 这是一道树上斜率优化题 首先 \[dp[i]=min\{dp[j]+(dis[i]-dis[j])* p[i]+q[i]\}(j∈Pre_i)\] 那么就是 \[p[i]=\fra ...

  8. 使用记忆化优化你的 R 代码

    目录 使用记忆化优化你的 R 代码 R 中的性能优化 R 何时变慢 R 何时变(更)快 R 中的记忆化 何时使用记忆化 使用记忆化优化你的 R 代码 本文翻译自<Optimize your R ...

  9. mysq exists和in

    我们在学习Yii2的时候,一定接触过这样的where输入 $query->where(["exists",xxxx]); User::find()->where([&q ...

  10. python(unittest)报告导出(二):使用 BeautifulReport导出

    BeautifulReport(导出的报告比HTMLTestRunner更全面) 下载地址及安装位置 https://github.com/TesterlifeRaymond/BeautifulRep ...