本文能够快速的帮你熟悉PM2是如何将Node js项目进行生产环境部署。
安装
通过npm安装
npm install -g pm2
通过yarn安装
yarn global add pm2
添加pm2命令自动完成功能
pm2 completion install
本人的Mac电脑会提示如下信息
No .bashrc file. You'll have to run instead: pm2 completion >> ~/.bashrc
这是因为我的用户目录下还没有 .bashrc
文件, 按照提示,运行如下命令即可
pm2 completion >> ~/.bashrc
运行完成之后,记得运行source命令使其生效
source ~/.bashrc
现在就可以使用tab按键,实现PM2命令的模糊自动补全了
多进程管理
PM2自身帮你维护着一个进程列表,你可以很方便的对列表中的进程进行启动、重启和停止等操作。你的所有项目都会在底层运行,你可以通过命令行,也就是PM2 CLI工具和你的项目进行交互。
通过 start
和 delete
命令将你的项目添加到进程列表里面
// 将项目添加到进程列表,并启动该进程
pm2 start app.js
// 查看进程列表
pm2 ls
// 从进程列表中删除指定名称的进程
pm2 delete app
image.png
啰嗦一句:默认的进程名称使用的是不包含文件后缀的项目入口文件名称,如上面例子中的入口文件为
app.js
,对应的进程名称为app
,当然,你可以在start
命令后面加上--name
或者-n
参数来直接指定进程的名称,例如
pm2 start app.js --name myApp
常规命令
项目被添加到进程列表之后,你可以使用进程名称来管理正在运行的项目。
// 停止该进程,但是依然会保留在进程列表里面
pm2 stop app
// 启动该进程
pm2 start app
// 重启该进程,即先运行了stop命令,然后再运行start命令
pm2 restart app
集群模式
PM2的集群模式可以在不修改任何代码的情况下,让你的项目充分利用每一个可用的CPU资源。你可以通过在start命令后面添加-i
参数来启用集群模式,-i
后面的数字代表你希望创建的集群数量
pm2 start app.js -i 4
或者让pm2自动判断可用的CPU数量来创建对应数量的进程
pm2 start app.js -i max
平滑重启
Use reload instead of restart for 0-seconds downtime reloads:
如果希望热更新项目,那么可以使用reload
命令来代替restart
命令:
pm2 reload app
网友评论