详解使用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中exports与module.exports的区别详细介绍
Jan 14 NodeJs
使用Nodejs开发微信公众号后台服务实例
Sep 03 NodeJs
nodejs教程之入门
Nov 21 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
nodejs根据ip数组在百度地图中进行定位
Mar 06 NodeJs
解析NodeJS异步I/O的实现
Apr 13 NodeJs
详解nodejs异步I/O和事件循环
Jun 07 NodeJs
Nodejs之http的表单提交
Jul 07 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
深入理解NodeJS 多进程和集群
Oct 17 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 NodeJs
基于nodejs的微信JS-SDK简单应用实现
May 21 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
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
javascript getElementsByClassName实现代码
2010/10/11 Javascript
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
jquery实现的图片点击滚动效果
2014/04/29 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
jQuery自动或手动图片切换效果
2017/10/11 jQuery
基于node.js实现微信支付退款功能
2017/12/19 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
用Python编写web API的教程
2015/04/30 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
python中执行shell的两种方法总结
2017/01/10 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
Python模块搜索路径代码详解
2018/01/29 Python
Python 元类实例解析
2018/04/04 Python
python入门之基础语法学习笔记
2020/02/08 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
JAVA和C++的区别
2013/10/06 面试题
个人找工作的自我评价
2013/10/17 职场文书
文明礼仪标语
2014/06/13 职场文书
欢度春节标语
2014/07/01 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
2014年办公室主任工作总结
2014/11/12 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
学年个人总结范文
2015/03/05 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS