pm2在node中的应用
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中的应用的更多相关文章
- node.js&pm2搭建node生产环境
node.js下载地址https://nodejs.org/en/download/stable/ 下载截图 建议采用稳定编译过的版本,source code稍麻烦,编译过的直接可用,安装超级简单,红 ...
- 使用PM2守护Node.js应用
PM2简介 PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控.自动重启.负载均衡等,而且使用非常简单. 安装PM2 $ npm install pm2 -g ...
- pm2部署node应用
背景: 很早就知道了pm2的强大功能,部署,多进程部署,负载均衡等等,但是一直没有取尝试使用,每次写完代码就没关心部署的事了.最近有空就想着把pm2的部署流程走一遍,顺便整理出来. 环境: 1.本地: ...
- node中的Stream-Readable和Writeable解读
在node中,只要涉及到文件IO的场景一般都会涉及到一个类-Stream.Stream是对IO设备的抽象表示,其在JAVA中也有涉及,主要体现在四个类-InputStream.Reader.Outpu ...
- 深入理解jQuery、Angular、node中的Promise
最初遇到Promise是在jQuery中,在jQuery1.5版本中引入了Deferred Object,这个异步队列模块用于实现异步任务和回调函数的解耦.为ajax模块.队列模块.ready事件提供 ...
- Node中的定时器详解
在大多数的业务中,我们都会有一些需求,例如几秒钟实现网页的跳转,几分钟对于后台数据进行清理,node与javascript都具有将代码延迟一段时间的能力.在node中可以使用三种方式实现定时功能:超时 ...
- node中的可读流和可写流
javascript的一个不足之处是不能处理二进制数据,于是node中引入了Buffer类型.这个类型以一个字节(即8位)为单位,给数据分配存储空间.它的使用类似于Array,但是与Array又有不同 ...
- node中的Readable - flowing/non-flowing mode
大家都知道在node中Readable Stream有两种模式: flowing mode和non-flowing mode. 对于flowing mode的Readable Stream, 我们是没 ...
- 清理8组nodes中表的历史数据,平均每个node中的表有1.5亿条记录,需要根据date_created字段清理8000W数据记录,这个字段没有索引。
清理8组nodes中表的历史数据,平均每个node中的表有1.5亿条记录,需要根据date_created字段清理8000W数据记录,这个字段没有索引. 环境介绍 线上磁盘空间不足,truncate ...
随机推荐
- OI数据结构&&分治 简单学习笔记
持续更新!!! [例题]简单题(K-D tree) 题目链接 线段树 [例题](环上最大连续和) 给定一个长度为n的环形序列A,其中A1与A_n是相临的,现在有q次修改操作,每次操作会更改其中一个数, ...
- “全栈2019”Java第六十章:如何定义接口
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- link和@import的区别是什么 ?
1.link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务:@import属于CSS范畴,只能加载CSS. 2.link引入CSS是,在页面载入时间同时加载:@import页面网页完全 ...
- c++ Initialization
c++ 的初始化过程比较复杂:根据对象的storage duration来分类.所谓storage duration是对象而言的,Storage duration is the property of ...
- linux ssh 上传 文件
在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地 ...
- ORACLE的WITH语句的一个疑惑
使用WITH语句,更新表数据,不行: WITH VN AS ( SELECT T.ID, T.NODE_ID, N.NODE_TYPE, N.NODE_NAME, T.NODE_LEVEL, T.RN ...
- java设计模式:简单实现生产者和消费者模式
*博客搬家:初版发布于 2016/04/15 20:31 原博客地址:https://my.oschina.net/sunqinwen/blog/660881 本实例中单独为生产者和消费者各开辟 ...
- mfix中更改time dependent VTK filename的最大时间步数的容量
默认是0000四位,有可能保存文件多了以后不够用,可以在源码中修改,修改以后效果: 源码位置: 把 I4. 改成 I5.
- TCPIP详解卷一
strongswan man page. kernel-book IntroductionParallelPro then POSIX THread
- HTML基础信息笔记
HTML 是什么 HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 标签(tag) HTML 标签是由尖括号包围的关键词,比如 <html> ...