PM2是 Node.js 的优秀运行时管理工具,专为简化和优化 Node.js 应用程序的生产部署与运行而设计。
PM2 官网链接: https://pm2.keymetrics.io/
1.PM2 的优势
持续运行:即使应用出错或崩溃,也能自动重启。
负载均衡:智能地自动分配入站连接到多个应用实例。
日志集中管理:一处集中显示所有应用的日志。
实时监控:实时查看所有应用的状态及细节性能指标。
- 安装 PM2
选择以下任意一种方法全局安装 PM2:yarn global add pm2
或者
npm install pm2 -g
- PM2 常用命令
启动: pm2 start app.js- 启动并保护您的应用。
查看列表: pm2 list- 显示所有 PM2 托管的应用列表。
监控应用: pm2 monit- 查看应用的资源使用和日志。
查看日志: pm2 logs- 获取应用的实时日志。
重启应用: pm2 restart
停止应用: pm2 stop
移除应用: pm2 delete
如上图在 script 标签中添加
"pm2": "pm2 start ./ecosystem.config.cjs --interpreter babel-node --env production",
"bundle": "rollup -c"
4、配置pm2启动文件
🔧 在根目录创建 ecosystem.config.cjs 内容如下
内容如下:
// 配置pm2
module.exports = {
apps: [
{
name: "JavaMerPcMall",
script: "./.output/server/index.mjs", // 其实使用npm去启动了./node_modules/nuxt/bin/nuxt这个文件。当我们cd到我们的项目目录之后,我们最终可以执行如下命令来启动:
args: "start", // 传递给脚本的参数
watch: true, // 开启监听文件变动重启
ignore_watch: ["node_modules", "public", "logs"], // 不用监听的文件
exec_mode: "fork",// 自家主机window cluster_mode 模式下启动失败
instances: "1", // max表示最大的 应用启动实例个数,仅在 cluster 模式有效 默认为 fork
autorestart: true, // 默认为 true, 发生异常的情况下自动重启
max_memory_restart: "1G", // // 最大内存限制数,超出自动重启
error_file: './logs/app-err.log', // 错误日志文件
// out_file: './logs/app-out.log', // 正常日志文件
merge_logs: true, // 设置追加日志而不是新建日志
log_date_format: "YYYY-MM-DD HH:mm:ss", // 指定日志文件的时间格式
min_uptime: "60s", // 应用运行少于时间被认为是异常启动
env: {
// 环境参数,当前指定为开发环境
NODE_ENV: "development",
PORT: "8888",
},
env_production: {
// 环境参数,当前指定为生产环境
NODE_ENV: "production", //使用production模式 pm2 start ecosystem.config.js --env production
PORT: "60001",
},
env_test: {
// 环境参数,当前为测试环境
NODE_ENV: "test",
}
}
]
};
pm2进程列表
pm2 list
pm2重启进程
pm2 restart [app-name]
pm2 restart all
pm2停止进程
pm2 stop [app-name]
pm2 stop all
pm2的进程日志
pm2 logs
pm2 logs [app-name]
本地测试端口60001访问成功
扫描二维码,在手机上阅读