GitHub 地址:https://github.com/Unitech/pm2
写在前面
文章主要来自豆瓣上一位同学的文章:PM2 介绍,中间可能有部分修改!
介绍
PM2 是一个带有负载均衡功能的 Node 应用的进程管理器。
当你要把你的独立代码利用全部的服务器上的所有 CPU,并保证进程永远都活着,0 秒的重载, PM2 是完美的。它非常适合 IaaS 结构,但不要把它用于 PaaS 方案(随后将开发 Paas 的解决方案)。
备注:
- SaaS、PaaS 和 IaaS 是云服务模式
- SaaS 软件即服务,例如 Google 的 Gmail 邮箱服务,面向应用型用户
- PaaS 平台即服务,例如 Google 的 GAE,面向开发型用户
- IaaS 基础架构即服务,例如亚马逊的 AWS,IaaS 对于不知道新推出的应用程序/网站会有多成功的创业公司来说非常有用
请参考
云服务模式:SaaS、PaaS 和 IaaS,哪一种适合你?
主要特性
- 内建负载均衡(使用 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 和内存的使用情况。
相关推荐
总结,"pm2 win离线包第二部分"是一个针对Windows用户的PM2离线安装解决方案,旨在帮助用户在没有网络连接或限制网络访问的环境中安装和使用PM2。正确安装后,用户就能享受到PM2带来的高效、稳定的Node.js应用管理...
对于某些需要root权限的应用,可以使用`pm2 start --name "app" app.js --no-daemon`命令避免后台守护进程模式。 - **配置文件**:推荐使用`ecosystem.config.js`配置文件来管理应用的启动参数和其他设置。 - **日志...
关于Python的使用,虽然PM2主要为Node.js设计,但如果你有一个能通过Node.js调用的Python脚本,比如使用`child_process`模块,那么你确实可以在PM2中管理这个Python脚本。不过,对于纯Python项目,通常推荐使用...
6. 最后,可以通过`./node_modules/pm2/bin/pm2`命令来启动和使用PM2。 标签中的“linux”表明这是与Linux操作系统相关的技术,“软件/插件”提示这是一个软件或插件的安装过程,而“pm2-linux离线安装包”正是我们...
- 更新 PM2 或已部署的应用,可以使用 `pm2 update` 或 `pm2 restart all --update-env`。 总之,PM2 是 Node.js 开发者不可或缺的工具,它提高了应用程序的稳定性和性能,简化了运维工作。这个离线压缩包提供了一...
pm2 win离线包第一部分,需要解压在node_global文件夹下使用
pm2离线包tar压缩包
再网上找到pm2.目前似乎最常见的线上部署nodejs项目的有forever,pm2这两种。 使用场合: supervisor是开发环境用。 forever管理多个站点,每个站点访问量不大,不需要监控。 nodemon 是开发环境使用,修改自动...
1、npm config get prefix, 看npm默认全局安装目录;2、拷贝你的 pm2.tar.gz 到该目录下并解压:tar xvf pm2...3、把这个命令加到系统环境中:ln -s /usr/local/node/lib/node_modules/pm2/bin/pm2 /usr/local/bin/pm2
这里使用了 `--watch` 参数,表示当Express应用的代码发生变化时,PM2将自动重启服务。这对于开发阶段特别有用,因为可以实时看到代码更改带来的效果。 #### 三、常用命令详解 ##### 1. 启动应用 启动应用时,...
在Windows环境下使用PM2,可以提升Node.js应用的稳定性和可靠性。 **安装PM2** 在Windows下安装PM2,通常需要通过npm(Node.js包管理器)进行。不过,提供的"pm2-installer-main.7z"压缩包可能是为了简化这个过程...
标题中的“pm2 win开机自动启动离线包”指的是在Windows操作系统中,使用PM2工具来实现应用程序的开机自启动功能。PM2是Node.js的一个进程管理器,它能够保持应用在后台运行,并且在异常退出后能自动重启,极大地...
3. **全局激活**:为了让 PM2 可以在任何目录下被调用,我们需要将其软链接到全局可执行文件目录,如 `/usr/local/bin`,使用命令 `sudo ln -s /usr/local/lib/node_modules/pm2/bin/pm2 /usr/local/bin/`。...
7. 问题解决:在使用pm2管理node.js脚本时,可能会遇到找不到pm2命令的问题,解决办法是将.bashrc文件中的case $- in *i*) ;; *) return;;esac内容注释掉。 8. 项目目录权限:需要修改项目目录的权限,以便部署项目...
在这份文档中,主要介绍了与SINAMICS G120变频器配套使用的Power Module PM240-2的详细信息,以及三个不同的安装类型:FSA、FSB和FSC。文档中还包含了关于设备安全操作的警示以及装置的安装尺寸和钻孔模式。以下是从...
nodejs进程通信--pm2 cluster方式, pm2版本 2.4.2,node 版本 v7.5.0
### LSPM2手册:SIMATICNET中的PROFIBUS...以上是基于“LSPM2 manual”文档的关键知识点总结,涵盖了LSPM2芯片的基本信息、功能描述、引脚作用、内部结构以及报文格式等方面,旨在帮助读者全面理解该芯片的特性和应用。
下面将详细介绍如何在CentOS7离线环境下安装Node.js和PM2,以及这两个组件的重要性和使用方法。 首先,让我们来看看离线安装的步骤。由于在离线环境中,我们无法通过网络下载依赖,因此需要提前准备所需的安装包。...
手册从设备简介开始,逐步介绍如何安装和配置打印机,使用打印机驱动程序,创建打印标签,以及打印机的维护和故障排除。 知识点一:关于PM42打印机 PM42是一款工业级别的标签打印机,适用于需要大量、高效率打印...