PM2学习记录
PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。
先上一个官网地址
PM2 的主要特性
- 内建负载均衡(使用 Node cluster 集群模块)
- 后台运行
- 0 秒停机重载,我理解大概意思是维护升级的时候不需要停机.
- 具有 Ubuntu 和 CentOS 的启动脚本
- 停止不稳定的进程(避免无限循环)
- 控制台检测
- 提供 HTTP API
- 远程控制和实时的接口 API ( Nodejs 模块,允许和 PM2 进程管理器交互 )
安装
npm install -g pm2
常用命令
参数说明:
–watch:监听应用目录的变化,一旦发生变化,自动重启。如果要精确监听、不见听的目录,最好通过配置文件。
-i –instances:启用多少个实例,可用于负载均衡。如果-i 0或者-i max,则根据当前机器核数确定实例数目。
–ignore-watch:排除监听的目录/文件,可以是特定的文件名,也可以是正则。比如–ignore-watch=”test node_modules “some scripts””
-n –name:应用的名称。查看应用信息的时候可以用到。
-o –output
:标准输出日志文件的路径。 -e –error
:错误输出日志文件的路径。 –interpreter
:the interpreter pm2 should use for executing app (bash, python…)。比如你用的coffee script来编写应用。 $ 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 启动 并 生成一个配置文件
更多的命令可以上官网看