pm2
PM2 是带有内置负载平衡器的 Node.js 应用程序的生产过程管理器。可以利用它来简化很多 Node 应用管理的繁琐任务,如性能监控、自动重启、负载均衡等。
安装
我们一般会把 pm2 安装到全局。
$ npm install pm2 -g # 命令行安装 pm2
常用命令
$ pm2 start # 启动一个服务
$ pm2 list # 列出当前的服务
$ pm2 stop # 停止某个服务
$ pm2 restart # 重启某个服务
$ pm2 delete # 删除某个服务
$ pm2 logs # 查看服务的输出日志
比如, pm2 list
,就会以表格显示。
pm2 的服务都有一个数组 id,你可以用 id 快速操作它。
比如:
$ pm2 stop 1 # 停止编号为 1 的服务
$ pm2 delete 1 # 删除编号为 1 的服务
使用 --name
参数添加一个应用名。
$ pm2 start ./bootstrap.js --name test_app
然后你可以用这个应用名来操作启停。
$ pm2 stop test_app
$ pm2 restart test_app
启动应用
Midway 应用一般使用 npm run start
做线上部署。其对应的命令为 NODE_ENV=production node bootstrap.js
。
信息
部署前需要执行编译 npm run build
对应的 pm2 命令为
$ NODE_ENV=production pm2 start ./bootstrap.js --name midway_app -i 4
- --name 用于指定应用名
- -i 用于指定启动的实例数(进程),会使用 cluster 模式启动
效果如下:
Docker 容器启动
在 Docker 容器中,后台启动的代码都会被退出,达不到预期效果。pm2 使用另一个命令来支持容器启动。
请将命令修改为 pm2-runtime start 。
$ NODE_ENV=production pm2-runtime start ./bootstrap.js --name midway_app -i 4
具体的 pm2 行为请参考 pm2 容器部署说明。