首页IT科技pm2管理器(pm2基本使用)

pm2管理器(pm2基本使用)

时间2025-05-02 16:52:20分类IT科技浏览5495
导读:1.pm2的基本介绍 pm2是node的进程管理器,利用它可以简化node任务的管理,且内置了许多功能,常用于后台脚本管理。...

1.pm2的基本介绍

pm2是node的进程管理器             ,利用它可以简化node任务的管理,且内置了许多功能,常用于后台脚本管理             。

pm2特性

自带热部署 - - - 当源文件更新 线上项目也会自动重启 后台运行 - - - 不会占用实时窗口 会在后台运行 服务信息查看 - - - 查看运行中程序的各项信息 日志系统 - - - 可以随时查看程序的运行日志 内置负载均衡 - - - 在cluster模式会自动使用轮询的方式达到负载均衡的效果 多平台支持 - - - 在linux windows macOS 上都可以稳定的运行 最大内存重启 - - - 可以设置最大内存限制超过限制则会自动重启;

还有很多的特性 咱就不一一举例了感兴趣的朋友可以去官网查看学习 小的这就献上官网地址 官网地址

2.pm2的安装

// 这里我使用npm进行pm2的全局安装 $ npm install -g pm2 // 安装完成后可以使用 -v 参数 查看pm2的版本 检测是否安装成功 $ pm2 -v

3.pm2的基本使用

// 第一条要介绍的是pm2的启动命令 $ pm2 start [项目入口文件名]

这里我使用一个 node.js内置的http模块搭建的一个简单服务器程序来演示

// serve.js var http = require("http") //创建服务器 http.createServer((req, res) => { res.writeHead(200, { "Content-Type": "text/html;charset=utf-8" }) //设置响应头 res.write(` <html> <div>hello pm2</div> </html> `) res.end() }).listen(3000, () => { console.log("server start") })

在项目根路径打开cmd运行下面的命令

// 使用npm2启动这个简单的服务器程序 $ pm2 start serve.js // 也可以在后面添加一些参数 来附加一些效果 --watch // --watch 监听程序源文件的变化 一旦发生变化自动重启 (热启动效果) --ignore-watch // 排除监听的目录或者文件 支持正则表达式 -n --name // 设置程序的名称 --log // 指定日志文件 --max-memory-restart [100MB] // 设置最大占用内存 --no-daemon // 非进程守护模式启动 --no-autorestart // 关闭自动重启 --time // 日志添加时间前缀 -e --error [path] // 错误日志输出路径 -i [n] //cluster mode 模式启动n个进程实例 -i max //集群模式 将会检测cpu的数量并运行尽可能多的进程 自动开启负载均衡的效果 // 还有很多参数可以使用 详细可以查看官网 这些也可以通过pm2配置文件配置

可以看到命令行输出了以下信息 这是这个简单服务器程序的一些基础运行信息,这时即使关闭终端,这个程序仍然会在后套继续运行

各项参数详解

id // 进程id 标识作用 用于其他命令的指向 name // 进程标识 用于其他命令的指向 namespace // 环境名称 version // 版本 mode //进程模式                  ,cluster或fork                  。cluster有多个进程      ,而fork只有一个 pid // 进程id 标识作用 uptime // 运行时间// 重启次数 status // 进程是否在线 cpu // cpu的占用率 mem // 内存占用大小 user // 启动用户名

可以启动多个这样的任务 可以通过以下命令查看所有的运行程序信息

// 查看所有使用pm2运行的程序信息 $ pm2 list

4.pm2常用命令

1.停止进程

// 停止指定的进程 $ pm2 stop [进程名] | [进程id] // 停止所有的进程 $ pm2 stop all # 停止所有的应用程序

2.删除进程

// 删除指定的进程 $ pm2 delete [进程名] | [进程id] // 删除所有进程 $ pm2 delete all // 杀死pm2的守护进程 同时也会杀死所有进程 $ pm2 kill

3.重启进程

// 以下两个命令都可以达到重启进程的效果 $ pm2 restart [进程名] | [进程id] // 重启效果 短时间内进程无效 $ pm2 reload [进程名] | [进程id] // 重载效果 会保持进程在线 // 重启所有进程 $ pm2 reload all // 重置重启数量 $ pm2 reset [进程名]

4.查看所有进程

// 以下三个命令都可以查看所有进程 $ pm2 list $ pm2 ls $ pm2 status

5.查看某一个进程的信息

$ pm2 show [进程名] | [进程id]

6.查看日志

// 查看所有的日志 $ pm2 logs // 查看指定的进程日志 $ pm2 logs [进程名] | [进程id] // 清空所有日志 $ pm2 flush // 还可以附加一些参数 附加功能 --line [数字] // 查看最后多少条日志 默认是15条 --err // 只查看错误日志 --timestamp // 时实日志附带时间前缀

6.监控所有的进程

// 会进入一个信息面板 $ pm2 monit

7.静态服务器

$ pm2 serve [静态文件夹路径] [端口]

8.扩展实例

// 将指定的进程扩展到n个 $ pm2 scale [服务名] [n]

5.pm2配置文件

$ pm2 ecosystem // 当前目录下自动生成pm2的配置文件 // 以配置文件启动 $ pm2 start ecosystem.config.js --env production

apps是一个数组 可以同时配置多个进程服务 还有很多的配置项 如果想要了解的更详细还请参照官网

同时日志文件还支持 yml 格式配置 小编这里就不多演示了 详情请参照官网 // ecosystem.config.js 配置演示 module.exports = { apps : [{ name : demo, // 应用的名称 script : app.js, // 应用文件路径 env: { PM2_SERVE_PATH: ".", // 静态服务的路径 PM2_SERVE_PORT: 8080, // 静态服务器访问的端口 NODE_ENV: development // 设置开发环境运行时 }, env_production : { NODE_ENV: production // 设置生产环境运行时 }, instances: "max", // 将应用程序分布在所有CPU核心上 也可以指定多少个 watch: true, // 热启动模式 output: ./out.log, // 指定日志标准输出文件及位置 error: ./error.log, // 错误输出日志文件及位置 merge_logs: true, // 是否可以合并日志 log_type: "json", // 日志类型 log_date_format: "DD-MM-YYYY", // 日志的日期格式 }], deploy : { production : { user : SSH_USERNAME, host : SSH_HOSTMACHINE, ref : origin/master, repo : GIT_REPOSITORY, path : DESTINATION_PATH, pre-deploy-local: , post-deploy : npm install && pm2 reload ecosystem.config.js --env production, pre-setup: } } }

6.结尾

这是小编的第二篇博客,励志每周更新一篇,感觉写到这里还有很多pm2的技术点没有写出来,后面可能还会更新一篇关于pm2的博客,专门讲解一下 pm2的一些插件 还有 keymetrics监控 和fork与cluster这两种启动模式,想听的朋友不妨点个关注或者订阅吧,哈哈哈             ,瑞思拜!

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
iis虚拟目录配置为应用程序(java虚拟主机目录怎么设置) 单视图三维重建(三维重建(单目、双目、多目、点云、SFM、SLAM))