文档章节

使用pm2 管理你的node项目

造化玉碟
 造化玉碟
发布于 2015/07/30 09:44
字数 685
阅读 1699
收藏 4

主要特性:


内建负载均衡(使用Node cluster 集群模块)

后台运行

0秒停机重载,我理解大概意思是维护升级的时候不需要停机.

具有Ubuntu和CentOS 的启动脚本

停止不稳定的进程(避免无限循环)

控制台检测

提供 HTTP API

远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )


测试过Nodejs v0.11 v0.10 v0.8版本,兼容CoffeeScript,基于Linux 和MacOS.


安装

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 (http://localhost:9615)

$ 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


0秒停机重载:

这项功能允许你重新载入代码而不用失去请求连接。

注意:

仅能用于web应用

运行于Node 0.11.x版本

运行于 cluster 模式(默认模式)

$ pm2 reload all


CoffeeScript:

$ pm2 start my_app.coffee  #这就是全部


PM2准备好为产品级服务了吗?

只需在你的服务器上测试

$ git clone https://github.com/Unitech/pm2.git

$ cd pm2

$ npm install  # 或者 npm install --dev ,如果devDependencies 没有安装

$ npm test


pm2 list

列出由pm2管理的所有进程信息,还会显示一个进程会被启动多少次,因为没处理的异常。




pm2 monit

监视每个node进程的CPU和内存的使用情况。


© 著作权归作者所有

造化玉碟
粉丝 44
博文 45
码字总数 26950
作品 0
海淀
前端工程师
私信 提问
使用pm2启动Vue项目教程

安装pm2 $ npm install -g pm2 命令行全局安装pm2 将pm2加入到命令中去 ln -s /usr/local/src/node-v8.9.1-linux-x64/bin/pm2 /usr/local/bin/pm2ln -s /usr/local/src/node-v8.9.1-linux-x6......

简单-生活
2017/12/13
0
0
PM2 介绍 启动Nodejs 框架Express项目

文章主要来自豆瓣上一位同学的文章:PM2 介绍,中间可能有部分修改! 介绍 PM2 是一个带有负载均衡功能的 Node 应用的进程管理器。 当你要把你的独立代码利用全部的服务器上的所有 CPU,并保...

투판시
2017/10/26
666
0
TODO:Node.js pm2使用方法

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

OneTODO
2016/11/07
87
0
Nodejs教程30(完结):PM2入门

阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。 PM2简介 PM2是常用的node进程管理工具,它可以提供node.js应用管理,如自动重载、性能监控、负载均衡等。同类工具有Superviso...

LeeChen
04/11
0
0
百度云分享爬虫

百度云分享爬虫项目 github上有好几个这样的开源项目,但是都只提供了爬虫部分,这个项目在爬虫的基础上还增加了保存数据,建立elasticsearch索引的模块,可以用在实际生产环境中,不过web模...

蓝猫163
2016/11/18
4K
1

没有更多内容

加载失败,请刷新页面

加载更多

代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
12
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部