PM2是一个守护进程管理器,它可以帮助你管理和保持应用程序24/7在线并支持Linux、macOS、Windows,与PM2类似是进程守护工具还有Supervisor、Forever等,不过这里就先了解一下PM2。
之前我在Cnetos中用过PM2,这里来试试Windows上来试试PM2的效果,首先第一步就是安装Node,在Windows安装Node尤为简便,直接下载->双击exe->下一步即可,安装过程中会自动为我们配置环境变量
在安装完成后,即可进入Dos查看Node
C:\Users\wmymt>node -v
v12.18.4
接下来,就进入主题,安装PM2,
npm install pm2 -g
现在,我们输入pm2 -v来查看pm2是否安装成功
可以看到PM2是可以使用了,在使用之前,我们得先学习几个常用的命令:
- pm2 start [Node.js, Python, Ruby, binaries in $PATH] #启动应用
- pm2 [list|ls|status] #列出所有应用程序管理的状态
- pm2 stop #停止应用
- pm2 restart #重启应用
- pm2 delete #删除应用
- pm2 describe #查看应用详细信息
- pm2 monit #应用监控信息
- pm2 logs #查看应用日志
- pm2 install #安装应用模块
- pm2 ecosystem #生成配置文件
下面,我来用Koa做一个简单的Node Web,先初始化一个项目npm init -y
然后执行npm install koa,安装koa框架
然后新建一个demo.js的文件,加入最简单的代码:
const Koa = require('koa');
const app = new Koa();
// response
app.use(ctx => {
ctx.body = 'Hello Koa';
});
app.listen(3000);
按理有了,现在就来试试PM2的强劲功能吧,用PM2来启动我们的demo.js
pm2 start demo.js
如果出现这样的显示,那说明是启动成功了,我们就可以用其他的命令来查看我们的应用信息,
现在我们记住我们的PID
D:\demo>pm2 list
┌─────┬─────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ │ status │ cpu │ mem │ user │ watching │
├─────┼─────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ demo │ default │ 1.0.0 │ fork │ 73572 │ 37m │ 15 │ online │ 0% │ 28.0mb │ wmymt │ disabled │
└─────┴─────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
手动去把73572这个进程给杀掉
这时候再来查看一下PM2的信息
可以看到应用状态仍然是online,但是PID变为了66304,而且应用也是可以正常访问的。其他常用命令我上面已经列出来了,有兴趣的可以自己去实践操作一下。
现在有个新功能pm2 plus,可以远程监控应用信息,首次执行pm2 plus会打开一个页面,进行授权,然后进入到https://app.pm2.io/页面,新建一个bucket,会跳转到下一个页面
执行命令pm2 link 8huyiabiu3inkif tqhko3emr1oze3m
现在启动我们的应用pm2 start demo.js
然后就可在https://app.pm2.io/看到我们应用的监控信息了。
其他更多功能,以后在实践中去探索吧