学习使用PM2管理nodejs进程

在项目中,偶尔对命令会忘记一下,因此在此记录下pm2的经常使用命令。node

1. pm2是什么?
pm2 是一个带有负载均衡的Node应用的进程管理器, 它可以管理Node应用,还可以对应用的运行状态进行监控。web

2. pm2 安装及使用npm

安装命令以下:json

npm install pm2 -g

好比说 我在项目中有一个 app.js 启动程序,代码以下:浏览器

const Koa = require('koa');

const app = new Koa();

app.use(async (ctx, next) => {
  ctx.response.body = 'hello world';
  await next();
});

app.listen(3000);
console.log('app started at port 3000...');

而后每次启动下该本地项目服务,咱们须要 node app.js 这样启动下,以下所示:app

而后在浏览器中访问 http://localhost:3000/ 就能够打印以下效果了:负载均衡

可是如今咱们有pm2了,咱们可使用pm2来管理咱们的node应用进程进行管理。咱们只须要运行 pm2 start app.js 便可;以下:koa

而后在浏览器中访问 http://localhost:3000/ 也同样能看到效果。async

下面是pm2 经常使用的命令:ui

$ npm install pm2 -g          // pm2 命令安装
$ pm2 start app.js -i 2       // 后台运行pm2,启动2个app.js
$ pm2 start app.js --name xxx // 命名进程为xxx

好比以下所示:

$ pm2 list            // 显示全部进程状态
$ pm2 monit           // 监视全部进程
$ pm2 logs            // 显示全部进程日志
$ pm2 stop all        // 中止全部进程
$ pm2 restart all     // 重启全部进程
$ pm2 reload all      // 0秒停机重载进程
$ pm2 stop 0          // 中止指定的进程
$ pm2 restart 0       // 重启指定的进程
$ pm2 startup         // 产生init脚本,保持进程活着
$ pm2 delete 0        // 杀死指定的进程
$ pm2 delete all      // 杀死所有进程
$ pm2 web             // 监控全部被pm2管理的进程

运行进程的不一样方式:

$ 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 --name xxxx  // 启动一个进程并把它命名为 xxxx
$ 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 // 启动并生成一个配置文件
相关文章
相关标签/搜索