简介
PM2 是 node 进程管理工具,可以利用它来简化很多 node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。
安装
npm install -g pm2
快速使用
pm2 start app.js
常用命令
启动
参数说明:
--watch:监听应用目录的变化,一旦发生变化,自动重启。如果要精确监听、不见听的目录,最好通过配置文件。
-i --instances:启用多少个实例,可用于负载均衡。如果-i 0或者-i max,则根据当前机器核数确定实例数目。
--ignore-watch:排除监听的目录/文件,可以是特定的文件名,也可以是正则。比如--ignore-watch="test node_modules "some scripts""
-n --name:应用的名称。查看应用信息的时候可以用到。
-o --output <path>:标准输出日志文件的路径。
-e --error <path>:错误输出日志文件的路径。
--interpreter <interpreter>:the interpreter pm2 should use for executing app (bash, python...)。比如你用的coffee script来编写应用。
重启
pm2 restart app.js
停止
停止特定的应用。可以先通过pm2 list获取应用的名字(–name指定的)或者进程id。
pm2 stop app_name|app_id
如果要停止所有应用,可以
pm2 stop all
从进程列表删除进程
// pm2 delete [appname] | id
pm2 delete app // 指定进程名删除
pm2 delete 0 // 指定进程id删除
删除进程列表中所有进程
pm2 delete all
查看进程状态
pm2 list
// 或者
pm2 ls
查看某个进程的信息
pm2 describe 0
负载均衡
命令如下,表示开启三个进程。如果-i 0,则会根据机器当前核数自动开启尽可能多的进程。
pm2 start app.js -i 3 # 开启三个进程
pm2 start app.js -i max # 根据机器CPU核数,开启对应数目的进程
日志查看
除了可以打开日志文件查看日志外,还可以通过pm2 logs来查看实时日志。这点对于线上问题排查非常重要。
比如某个 node 服务突然异常重启了,那么可以通过 pm2 提供的日志工具来查看实时日志,看是不是脚本出错之类导致的异常重启。
pm2 logs
开机自动启动
可以通过pm2 startup来实现开机自启动。细节可参考。大致流程如下
通过pm2 save保存当前进程状态。 通过pm2 startup [platform]生成开机自启动的命令。(记得查看控制台输出) 将步骤2生成的命令,粘贴到控制台进行,搞定。
监控(monitor)-查看进程的资源消耗情况
运行如下命令,查看当前通过pm2运行的进程的状态。
pm2 monit