You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[PM2] Spawning PM2 daemon with pm2_home=C:\Users\23101\.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting C:\xxx\lesson29\server.js in fork_mode (1 instance)
[PM2] Done.
┌────────┬────┬──────┬────────┬───┬─────┬───────────┐
│ Name │ id │ mode │ status │ ↺ │ cpu │ memory │
├────────┼────┼──────┼────────┼───┼─────┼───────────┤
│ server │ 0 │ fork │ online │ 0 │ 0% │ 32.0 MB │
└────────┴────┴──────┴────────┴───┴─────┴───────────┘
Use `pm2 show <id|name>` to get more details about an app
timestamp=2019-04-10-23:13:25+0800 app=server id=0 type=out message=dev
timestamp=2019-04-10-23:13:26+0800 app=server id=0 type=out message=Server started at 8080
以JSON格式查看日志
pm2 logs server --json
结果如下:
{"timestamp":"2019-04-10T15:14:52.376Z","type":"process_event","status":"exit","app_name":"server"}
{"timestamp":"2019-04-10T15:14:52.479Z","type":"process_event","status":"exit","app_name":"server"}
{"message":"dev","timestamp":"2019-04-10T15:14:53.246Z","type":"out","process_id":0,"app_name":"server"}
{"timestamp":"2019-04-10T15:14:53.284Z","type":"process_event","status":"online","app_name":"server"}
{"message":"Server started at 8080","timestamp":"2019-04-10T15:14:53.474Z","type":"out","process_id":0,"app_name":"server"}
查看近3行日志
pm2 logs server --lines 3
结果如下:
[TAILING] Tailing last 3 lines for [server] process (change the value with --lines option)
C:\xxx\.pm2\logs\server-error.log last 3 lines:
0|server | code: 'ETIMEDOUT',
0|server | syscall: 'connect',
0|server | fatal: true }
C:\xxx\.pm2\logs\server-out.log last 3 lines:
0|server | Server started at 8080
0|server | dev
0|server | Server started at 8080
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。
PM2简介
PM2是常用的node进程管理工具,它可以提供node.js应用管理,如自动重载、性能监控、负载均衡等。同类工具有Supervisor、Forever等。
PM2安装
使用PM2需要npm全局安装。
启动PM2项目
本文的测试项目直接选用上一篇完成的项目,地址为
/lesson29/
。直接启动项目
pm2支持直接运行server.js启动项目,如下:
即可启动Node.js应用,成功后会看到打印的信息:
在表格中显示了应用的名称为server、id为0,应用名称和id都可以作为该应用的标识。
通过配置文件管理应用
PM2还支持通过配置文件管理应用,这种方式可以提供更丰富的配置,支持的配置格式是Javascript,JSON和YAML,具体可以查看文档。
文件夹结构
PM2启动后,它将自动创建这些文件夹:
$HOME/.pm2 将包含所有PM2相关文件
$HOME/.pm2/logs 将包含所有应用程序日志
$HOME/.pm2/pids 将包含所有应用程序pids
$HOME/.pm2/pm2.log PM2 日志
$HOME/.pm2/pm2.pid PM2 pid
$HOME/.pm2/rpc.sock 远程命令的套接字文件
$HOME/.pm2/pub.sock 可发布事件的套接字文件
$HOME/.pm2/conf.js PM2配置
在Windows中,$ HOME环境变量可以是$ HOMEDRIVE + $ HOMEPATH
查看应用列表
使用命令
pm2 list
可以查看应用列表:查看应用详情
在命令行中输入
pm2 show 0
,弹出信息如下:监控CPU/内存
使用
pm2 monit
方法,即可监控CPU和内存的使用情况,同时应用的报错信息也会打印在Global Logs窗口中,如下:监听代码变化
使用如下命令,可以监听代码保存,并更新应用。
PM2不止监听server.js文件,还监听了它引用的所有模块,只要任意模块代码进行了保存,如键盘按下
ctrl + s
,或新建文件,PM2就会进行重启。如果需要忽略某些文件,则可以在配置文件中设置,如下:
环境管理
在项目开发时,通常需要进行环境管理,PM2可以使用配置文件与命令行参数设置环境。
添加配置文件
首先,使用
pm2 init
命令,创建一个ecosystem.config.js
文件,其中已经有默认的配置。修改配置
其中,对环境管理有用的为:
为了配合我们的项目,可以将配置修改为如下:
他们对应的启动命令分别为:
pm2 start ecosystem.config.js --watch --env
pm2 start ecosystem.config.js --watch --env development
pm2 start ecosystem.config.js --watch --env production
启动开发环境
在服务端的代码中,可以通过
process.env.NODE_ENV
,拿到设置的值。例如我们使用
pm2 start ecosystem.config.js --watch --env development
命令启动项目,则可以打印出process.env.NODE_ENV
的值为`dev:日志管理
PM2提供了十分强大的日志管理功能,支持以多种方式查看日志。
以特殊日期格式查看日志
结果如下:
以JSON格式查看日志
结果如下:
查看近3行日志
结果如下:
CLI参考
除了上面介绍的命令之外,PM2还有许多其他实用命令,在此就不一一列举,有需要的话可以查看文档
The text was updated successfully, but these errors were encountered: