详解使用PM2管理nodejs进程


Posted in NodeJs onOctober 24, 2017

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

当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。

它非常适合IaaS结构,但不要把它用于PaaS方案(随后将开发Paas的解决方案).

和使用node index.js方式比较,优点:

1 一个命令窗口就可管理多个node服务器进程。而node命令多个进程就需要开多个窗口。

2 关闭命令窗口,node进程仍然会运行。而node命令运行的关闭窗口后,进程也就关闭了。

一 安装PM2

npm install -g pm2

详解使用PM2管理nodejs进程

二 用pm2 启动index.js

pm2 start index.js --name tank

--name tank是给这个进程取个名字

详解使用PM2管理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 (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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
Nodejs中解决cluster模块的多进程如何共享数据问题
Nov 10 NodeJs
详解nodejs 文本操作模块-fs模块(二)
Dec 22 NodeJs
详解nodejs 文本操作模块-fs模块(一)
Dec 22 NodeJs
nodejs的压缩文件模块archiver用法示例
Jan 18 NodeJs
实例分析nodejs模块xml2js解析xml过程中遇到的坑
Mar 18 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
nodejs动态创建二维码的方法
Aug 12 NodeJs
nodejs中函数的调用实例详解
Oct 31 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 NodeJs
Nodejs + sequelize 实现增删改查操作
Nov 07 NodeJs
nodejs中使用worker_threads来创建新的线程的方法
Jan 22 NodeJs
一文秒懂nodejs中的异步编程
Jan 28 NodeJs
nodejs中安装ghost出错的原因及解决方法
Oct 23 #NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 #NodeJs
NodeJs通过async/await处理异步的方法
Oct 09 #NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 #NodeJs
Nodejs调用WebService的示例代码
Sep 29 #NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 #NodeJs
Nodejs实现文件上传的示例代码
Sep 26 #NodeJs
You might like
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
PHP中的类型约束介绍
2015/05/11 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
理解 JavaScript 预解析
2009/10/25 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
JavaScript中的私有/静态属性介绍
2012/07/26 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
Chrome扩展页面动态绑定JS事件提示错误
2014/02/11 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
node.js中的Socket.IO使用实例
2014/11/04 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
python实现单机五子棋
2020/08/28 Python
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
警校毕业生自我评价
2014/04/06 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
升职感谢信
2015/01/22 职场文书
2015年世界水日活动总结
2015/02/09 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
三方合作意向书范本
2015/05/09 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python