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 ...
随机推荐
- Django-04模板层
你可能已经注意到我们在例子视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python代码之中. def current_datetime(request): now = datet ...
- 514. Freedom Trail
In the video game Fallout 4, the quest "Road to Freedom" requires players to reach a metal ...
- 使用 Git 进行版本控制
使用 Git 进行版本控制 版本控制软件让你能够拍摄处于可行状态的项目的快照.修改项目(如实现新功能)后,如果项目不能正常运行,可恢复到前一个可行状态. 通过使用版本控制软件,你可以无忧无虑地改进项目 ...
- samba使用
一. samba安装 1. 安装:apt-get install samba samba-common smbclient 安装成功后,会默认启动samba服务, 可用ps-ef | grep smb ...
- 针对myeclipse6.5无法自动生成toString方法
public void getToStringSTR(){ Field[] fs = this.getClass().getDeclaredFields(); for (int i = 0; i &l ...
- docker安装MySQL软件
1 搜索mysql镜像 $ sudo docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a wi ...
- tomcat增加运行内存
内容为: set JAVA_OPTS=%JAVA_OPTS% -server -Xms2048m -Xmx2048m -XX:PermSize=212M -XX:MaxPermSize=512m 在m ...
- Sql2008R2 日志无法收缩解决方案
在网上查了二天资料,终于找到个解决了这个问题的方案,记录下来.方便下次处理. 解决方案转贴自: https://blog.csdn.net/kk185800961/article/detail ...
- python web开发小结
书籍 <python基础教程> <流畅的python> web框架 flask django tornado ORM sqlalchemy orator 消息队列 celery ...
- 实现微信小程序支付
1.在小程序中获取用户的登录信息,成功后可以获取到用户的code值 2.把code值传给服务端,服务端请求微信获取用户openid接口,成功后可以获取用户的openid值 3.服务器上面请求微信的统一 ...