IT工具 | node.js 进程管理工具 PM2 大升级!支持 Bun.js

P(rocess)M(anager)2 是一个 node.js 下的进程管理器,内置负载均衡,支持应用自动重启,常用于生产环境运行 node.js 应用,非常好用👍

🌼概述

2025-03-15日,PM2发布最新版本v6.0.5,这是一个大版本升级(上一版本v5.4.2发布于24年7月),本次更新带来了 Bun.js 的支持🎉。

  • 支持 Bun.js 运行时
  • 默认禁用 git 解析
  • PM2 serve 响应增加 WEBP 内容类型

⬆️版本升级

此处以 windows 平台为例进行说明

# 查看当前版本
pm2 -v
# 5.3.0# 直接通过以下命令覆盖安装
npm i -g pm2
# added 13 packages, removed 63 packages, and changed 121 packages in 1m
# 13 packages are looking for funding
#   run `npm fund` for details

升级后,我们执行 pm2 ls(显示pm2管理的进程)命令,会得到以下提示:

>>>> In-memory PM2 is out-of-date, do:
>>>> $ pm2 update
In memory PM2 version: 5.3.0
Local PM2 version: 6.0.5

我们执行pm2 update即可。

$ pm2 update-------------██████╗ ███╗   ███╗██████╗     ██╗    ██╗ ██████╗██╔══██╗████╗ ████║╚════██╗    ██║   ██╔╝██╔═══██╗██████╔╝██╔████╔██║ █████╔╝    ██║  ██╔╝ ██║   ██║██╔═══╝ ██║╚██╔╝██║██╔═══╝     ██║ ██╔╝  ██║   ██║██║     ██║ ╚═╝ ██║███████╗    ██║██╔╝   ╚██████╔╝╚═╝     ╚═╝     ╚═╝╚══════╝    ╚═╝╚═╝     ╚═════╝https://pm2.io/Harden your Node.js Production Environment- Real-time Monitoring Web Interface- Pro Active Alerting System- Production Profiling for Memory and CPU- PM2 Runtime High Availability FallbackStart using it by typing:$ pm2 plus-------------[PM2][WARN] No process found
[PM2] [v] All Applications Stopped
[PM2] [v] PM2 Daemon Stopped
[PM2] Spawning PM2 daemon with pm2_home=C:\Users\admin\.pm2
[PM2] Restoring processes located in C:\Users\admin\.pm2\dump.pm2
>>>>>>>>>> PM2 updated

🛠️小试牛刀

安装 Bun.js

如果您已经安装,请跳过😄

# windows 下安装 bun.js
powershell -c "irm bun.sh/install.ps1|iex"# 升级
bun upgrade# 卸载
powershell -c ~\.bun\uninstall.ps1

示例代码

我们让 deepseek 写一段简单的 WEB 服务

import http from 'http';
import url from 'url';// 记录程序启动时间
const startTime = Date.now();// 创建 HTTP 服务器
const server = http.createServer((req, res) => {const parsedUrl = url.parse(req.url, true);// 处理 /status 路由if (parsedUrl.pathname === '/status') {// 计算程序已经运行的时间(秒)const uptime = Math.floor((Date.now() - startTime) / 1000);// 返回 JSON 响应res.writeHead(200, { 'Content-Type': 'application/json' });res.end(JSON.stringify({ uptime }));} else {// 处理其他路由res.writeHead(404, { 'Content-Type': 'text/plain' });res.end('Not Found');}
});// 监听端口
const PORT = 3000;
server.listen(PORT, () => {console.log(`Server is running on http://localhost:${PORT}`);
});

运行进程

# 使用 node.js 运行
pm2 start web-node.mjs --interpreter node
# 使用 bun.js 运行
pm2 start web-bun.mjs --interpreter bun


运行4h后的状态:

运行7h后的状态:

Bun.js 跑的应用占用的内存越来越低?😂

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/74218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年01月02日浙江鼎永前端面试

目录 webpack 和 vite 区别react fiber 架构vue diff 算法react diff 算法hooks 源码垂直水平布局项目介绍单点登录大文件上传微前端 1. webpack 和 vite 区别 Webpack 和 Vite 是两种不同的前端构建工具,它们在设计理念、性能表现和使用场景上存在显著差异。以下…

1.企业级AD活动目录核心解析:架构、组件与集成实践

在当今数字化时代,企业级网络环境日益复杂,高效、安全的资源管理和用户认证成为企业 IT 运营的关键。AD(Active Directory)活动目录作为微软 Windows 系列服务器中的重要目录服务,为企业级网络管理提供了强大的解决方案…

【数据分享】2014-2024年我国各城市逐年空气质量指数(AQI)数据

空气质量指数(AQI)是一个衡量空气污染程度的综合指标,它并不直接表示具体污染物的浓度值,而是基于多种污染物的浓度进行的综合评价,具体基于六种主要污染物的浓度:PM2.5、PM10、SO₂、NO₂、O₃和CO。AQI是…

【C++】深入理解list迭代器的设计与实现

深入理解list迭代器的设计与实现 引言1、链表基础结构2、链表迭代器的封装2.1 初步封装迭代器类2.2 引入const迭代器2.2.1 参考STL源代码2.2.2 完善迭代器 3、迭代器实现机制结语 引言 在STL容器中,list作为经典的双向链表容器,其迭代器设计体现了C模板编…

C语言基础系列【27】typedef

博主介绍:程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇&#x1f…

【CXX-Qt】2.5 继承

某些 Qt API 要求你从抽象基类中重写某些方法,例如 QAbstractItemModel。 为了支持直接从 Rust 中创建这样的子类,CXX-Qt 提供了多种辅助工具。 某些基类可能需要特殊的构造参数。这可以通过使用自定义构造函数来实现。 访问基类方法 要在 Rust 中访…

磁盘清理工具-TreeSize Free介绍

TreeSizeFree是一个磁盘空间管理工具,主要用于分析磁盘使用情况,帮助用户找到占用空间大的文件和文件夹: 特点:按大小排序:快速找到占用空间最大的文件或文件夹 一般可以删除: 扫描 C:\Users\XXX\AppData\Local\Temp 或 C:\Window…

OpenCV中距离公式

一、各类距离公式总结 常见距离公式 欧氏距离: 曼哈顿距离(L1)‌: 切比雪夫距离(Chessboard)‌: 1、点与点距离(欧氏距离) ‌二维空间‌ 设两点坐标为 P1(x1,y1)、P2(x2,y2),其距离…

Vue.js 模板语法全解析:从基础到实战应用

引言 在 Vue.js 的开发体系中,模板语法是构建用户界面的核心要素,它让开发者能够高效地将数据与 DOM 进行绑定,实现动态交互效果。通过对《Vue.js 快速入门实战》中关于 Vue 项目部署章节(实际围绕 Vue 模板语法展开)…

论文笔记(七十三)Gemini Robotics: Bringing AI into the Physical World

Gemini Robotics: Bringing AI into the Physical World 文章概括1. 引言2. Gemini 2.0的具身推理2.1. 具身推理问答(ERQA)基准测试2.2. Gemini 2.0的具身推理能力2.3. Gemini 2.0支持零样本和少样本机器人控制 3. 使用 Gemini Robotics 执行机器人动作3…

centos7搭建postgresql12主从

主从搭建 192.168.159.101 node1 主库(读写) 192.168.159.102 node2 备库(只读) 两台机器首先安装postgrsql 主库 postgres用户操作: 修改postgresql.conf # 在文件中修改(此配置仅用于远程访问, 流复制后续还有额外…

嵌入式基础知识学习:SPI通信协议是什么?

SPI(Serial Peripheral Interface)是串行外设接口的缩写,是一种广泛应用于嵌入式系统的高速同步串行通信协议,由摩托罗拉公司于20世纪80年代提出。以下是其核心要点: 一、SPI的核心定义与特点 基本特性 全双工同步通信…

996引擎-接口测试:背包

996引擎-接口测试:背包 背包测试NPC参考资料背包测试NPC CONSTANT = require("Envir/QuestDiary/constant/CONSTANT.lua"); MsgUtil = require("Envir/QuestDiary/utils/996/MsgUtil.lua");

vulnhub靶场之【hack-me-please靶机】

前言 靶机:billu_b0x2靶机,IP地址为192.168.10.8 攻击:kali,IP地址为192.168.10.6 靶机和攻击机都采用VMware虚拟机,都采用桥接网卡模式 文章涉及的靶机及工具,都可以自行访问官网或者项目地址进行获取&…

机器学习——KNN模型评价

一、主要函数 sklearn.metrics.accuracy_score() 是 scikit-learn 中用于计算分类模型准确率的函数,适用于评估分类任务的整体性能。 1、核心功能 作用:计算模型预测的准确率,即正确分类的样本数占总样本数的比例。公式:Accurac…

美国国家数据浮标中心(NDBC)

No.大剑师精品GIS教程推荐0地图渲染基础- 【WebGL 教程】 - 【Canvas 教程】 - 【SVG 教程】 1Openlayers 【入门教程】 - 【源代码示例 300】 2Leaflet 【入门教程】 - 【源代码图文示例 150】 3MapboxGL【入门教程】 - 【源代码图文示例150】 4Cesium 【入门教程】…

Qt调用Miniconda的python方法

1、 Win 64环境下载及安装 Miniconda 首先下载Windows 版Miniconda,https://docs.conda.io/en/latest/miniconda.html或 https://repo.anaconda.com/miniconda/ 安装界面及选择如下图所示: 安装完python3.12版报错如下。 说明:python3.11版…

Unity 与 JavaScript 的通信交互:实现跨平台的双向通信

前言 在现代游戏开发和 Web 应用中,Unity 和 JavaScript 的结合越来越常见。Unity 是一个强大的跨平台游戏引擎,而 JavaScript 是 Web 开发的核心技术之一。通过 Unity 和 JavaScript 的通信交互,开发者可以实现从 Unity 到 Web 页面的功能扩…

汽车免拆诊断案例 | 2024 款路虎发现运动版车无法正常识别智能钥匙

故障现象  一辆2024款路虎发现运动版车,搭载2.0 L发动机,累计行驶里程约为5 000 km。车主反映,使用遥控器无法解锁车门,随后使用机械钥匙打开车门,踩下制动踏板,按压起动按钮,仪表盘提示“将智…

跟着StatQuest学知识06-CNN进行图像分类

目录 一、CNN特点 二、CNN应用于图像分类 (一)使用过滤器 (二)通过ReLU激活函数 (三)应用新的滤波器(池化) (四)输入 (五)输出…