PM2 | NodeJS应用进程管理工具—PM2的基本使用

news2024/11/29 16:41:39

目录

1. pm2 简介

2. pm2的主要特性

3. 常用命令

3.1 pm2的安装与更新

3.1.1 pm2安装

3.1.2 pm2更新

3.2 pm2 启动运行指定的程序

3.2.1 正常启动应用程序

3.2.2 启动应用程序时并设置name

3.3 pm2 停止指定运行的程序

3.3.1 停止特定的应用

3.3.2 停止所有的应用

3.4 重启所有进程

3.4.1 重新启动

3.4.2 0秒停机重载

3.5 删除应用程序

3.5.1 删除指定的应用程序

3.5.2 删除所有的应用

3.6 显示所有进程状态

3.7 显示日志

3.7.1 显示所有应用程序的日志

3.7.2 显示特定的进程日志

3.8 查看每个应用占用情况

3.9 显示应用程序所有信息

4. PM2配置文件方式

4.1 生成示例配置文件


 NodeJS 进程管理器 PM2 的使用 

1. pm2 简介

PM2 是一款非常优秀的 Node 进程管理工具,它有着丰富的特性:能够充分利用多核 CPU且能够负载均衡、能够帮助应用在崩溃后、指定时间(cluster model)和超出最大内存限制等情况下实现自动重启。

PM2 是开源的基于 Nodejs 的应用进程管理器,包括守护进程,监控,日志的一整套完整的功能

PM2 是一个带有负载均衡功能的 Node 应用进程管理器

2. pm2的主要特性

  • 内建负载均衡(使用 Node cluster 集群模块)
  • 后台运行
  • 0 秒停机重载,我理解大概意思是维护升级的时候不需要停机.
  • 具有 Ubuntu 和 CentOS 的启动脚本
  • 停止不稳定的进程(避免无限循环)
  • 控制台检测
  • 提供 HTTP API
  • 远程控制和实时的接口 API(Nodejs 模块,允许和 PM2 进程管理器交互)

3. 常用命令

3.1 pm2的安装与更新

在使用pm2之前,我们还需要安装nodejs,这是前提

下载nodejs:下载 | Node.js | Index of /dist/

如何安装nodejs:Node.js 安装配置 | 菜鸟教程 | 通过包管理器安装 Node.js | Node.js

3.1.1 pm2安装

npm install pm2 -g

yarn global add pm2

查看版本好,确定是否安装成功

3.1.2 pm2更新

pm2 updated

3.2 pm2 启动运行指定的程序

通过pm2启动应用程序服务,守护进程

3.2.1 正常启动应用程序

pm2 start app.js
pm2 start index.js

示例:

多个应用程序

通过pm2启动应用程序

启动第一个应用程序

启动第二个应用程序

启动是否能正常运行程序

我们发现两个进程都可以正常访问,我们会发现两个进程都叫app,甚至都不太好区分谁是谁

因此,我们在启动程序的时候,可以自定义命名

3.2.2 启动应用程序时并设置name

pm2 start app.js --name demo

上面的示例中,两个进程都是同一个名字,都不太好区分,启动第三个程序时修改进程名称

结果:

3.3 pm2 停止指定运行的程序

通过pm2停止正在运行的程序

3.3.1 停止特定的应用

  • 根据应用名停止指定应用
pm2 stop [AppName]
  • 根据应用id停止指定应用
pm2 stop [ID]

现在可以停止进程

通过进程名关闭进程

通过进程id关闭进程

结果

3.3.2 停止所有的应用

  • 停止所有进程
pm2 stop all

all是关闭所有的进程

访问结果:

3.4 重启所有进程

3.4.1 重新启动

restart命令同时杀死并重启所有进程。短时间内服务不可用。生成环境推荐使用reload

pm2 restart all

3.4.2 0秒停机重载

重新启动所有进程,始终保持至少一个进程在运行

pm2 reload app.js

3.5 删除应用程序

删除应用程序,就是不在让pm2维护这个应用程序

3.5.1 删除指定的应用程序

  • 根据应用名关闭并删除应用
pm2 delete [AppName]
  • 根据应用ID关闭并删除应用
pm2 delete [ID]

通过进程名删除进程

通过进程id删除进程

3.5.2 删除所有的应用

  • 关闭并删除所有的应用
pm2 delete all

3.6 显示所有进程状态

pm2 list

查看进程状态

3.7 显示日志

3.7.1 显示所有应用程序的日志

pm2 logs

查看进程日志

3.7.2 显示特定的进程日志

  • 指定应用名查看应用日志
pm2 logs [Name]
  • 指定应用ID查看应用日志
pm2 logs [ID]

3.8 查看每个应用占用情况

pm2 monit

3.9 显示应用程序所有信息

  • 根据name查看
pm2 show [Name]
  • 根据id查看
pm2 show [ID]

4. PM2配置文件方式

4.1 生成示例配置文件

pm2 ecosystem

pm2 init


参考资料

PM2管理前端项目 | 流程管理工具 PM2

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

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

相关文章

SpringMVC之JSON数据返回与异常处理机制---全方面讲解

一,JSON数据返回的理解 在Spring MVC中,当需要将数据以JSON格式返回给客户端时,可以使用ResponseBody注解或RestController注解将Controller方法的返回值直接转化为JSON格式并返回。这使得开发者可以方便地将Java对象转换为JSON,并…

【AIGC】斯坦福小镇升级版——AI-Town源码解读

写在前面的话: 接上一篇斯坦福小镇升级版——AI-Town搭建指南,本本篇将解读 AI-Town 使用的技术栈、代码架构、与LLM的交互,以及与斯坦福AI小镇的对比结果(如想直接看结论可跳到文章最后) 整体架构 技术栈 AI-Town 使…

“金钥匙”转动!安全狗成功护航第二十三届中国国际投资贸易洽谈会举办

9月8日至9月11日,为期4天的第二十三届中国国际投资贸易洽谈会在厦门顺利举办。 作为国内云原生安全领导厂商,安全狗凭借突出的安全综合实力,受委托并担任此次会议网络安保技术支撑单位。 厦门服云信息科技有限公司(品牌名&#xf…

第一章 JAVA入门

文章目录 1.2 Java 的特点1.2.1 简单1.2.2 面向对象1.2.3 与平台无关① 平台与机器指令② C/C程序依赖平台③ Java 虚拟机与字节码1.2.4 多线程1.2.5 动态1.30安装 JDK1.3.1 平台简介0 Java SE②Java EE1.4 Java 程序的开发步骤②保存源文件1.5.2 编译1.8 Java之父-James Gosli…

spring boot+redis整合基础入门

文章目录 前言准备依赖项配置文件redis模板类注入设置序列化方式 实施基础字符串操作、超时设置Hash操作hash的使用场景以及优缺点 列表操作列表操作的应用场景以及优缺点 Set的基础操作Set类型的业务场景以及优缺点Demo地址 总结 前言 最近项目中有用到redis进行一些数据的缓…

【Linux】编译器 gcc/g++

1、背景知识 (1)[LMYhecs-38755 ~]$ gcc code.c -o code.exe -stdc99【-o 生成指定名字的可执行文件,-stdc99 以 C99 的标准执行程序】 (2)安装 g,yum install gcc-c 2、gcc如何完成 (1&#x…

如何使用 Node.js和Express搭建服务器?

如何使用NodeJs搭建服务器 1. 准备工作1.1 安装Node.js 2. 安装express2.1 初始化package.json2.2 安装express2.3 Express 应用程序生成器 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段…

前端面试合集(三——浏览器)

浏览器的页面渲染 1.浏览器是如何渲染页面的?2. 什么是reflow(重排)?3. 什么是repaint(重绘)?4.为什么transform效率高? 1.浏览器是如何渲染页面的? 当浏览器的网络线程收到HTML文档之后&#…

Leetcode刷题_链表相关_c++版

&#xff08;1&#xff09;92反转链表–中等 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 /*** Definition for singly-linked list.* struct Lis…

Claude: ChatGPT替代大语言模型

【产品介绍】 Claude是Anthropic推出的类ChatGPT大语言模型&#xff0c;也是一个AI人工智能助理&#xff0c;可以帮助各种行业的用户处理工作&#xff0c;如客户服务、法律、教练、搜索和销售。Claude可以通过聊天界面和API进行访问&#xff0c;能够完成各种对话和文本处理任务…

计算机二级知识点整理

翻到了之前准备计算机二级的笔记&#xff0c;现在给大家分享出来。 一、基本知识&#xff1a; 计算机把完成一条指令所花费的时间称为一个指令周期结构化程序设计强调的是程序的易读性boolean类型不能转为其他基本类型数据表达式是由运算符和运算对象构成的&#xff0c;#不是…

SimpleCG程序交互操作

前言 之前所有示例程序都是属于展示型的&#xff0c;只是作为展示板输出使用&#xff0c;不涉及键盘和鼠标的输入交互&#xff0c;下面我们开始接触具有交互功能的程序。 没有交互功能的程序可以满足一定需求,不过大部分的程序是不能脱离交互功能的。程序依据使用者的操作进行相…

Error response from daemon

文章目录 遇到的问题解决方法参考 遇到的问题 当输入下面的指令时 docker pull xxxxxx解决方法 打开/etc/docker/daemon.json文件 vim /etc/docker/daemon.json写入以下内容&#xff1a; {"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]…

OpenCV 图像像素运算操作

加法操作详解 加减乘除 #include <opencv2/opencv.hpp>using namespace cv;int main() {Mat image imread("image.jpg");if (image.empty()) {std::cout << "无法加载图像" << std::endl;return -1;}// 加法变换Mat addResult;add(ima…

mac在vscode编码过程中输入()光标在里面的时候想移出来还得动用左右键很麻烦有什么快捷方法

下载vscode插件: 想跳出大括号的时候就可以使用tab直接跳出来就行了

Buuctf web [SUCTF 2019]EasySQL

又是一道考察sql注入的题 1、起手试探 &#xff08;主要看看输入什么内容有正确的回显&#xff09; 1 0 1 1 # 发现只有在输入1的情况下有正常的回显,输入0或其他字符都没有回显&#xff0c;所以这题就要尝试堆叠注入了。 ps&#xff1a;&#xff08;如果想尝试其他注入方法…

带你打穿三层内网-红日靶场七

文章目录 前记环境配置web1信息搜集cve-2021-3129redis未授权|ssh密钥后渗透 Win7&#xff08;PC1&#xff09;永恒之蓝 web2docker逃逸 win7&#xff08;PC2&#xff09;|DC 前记 所用工具 msfcsvenomfrp蚁剑冰蝎laravel.pyfscan 注意事项 msf的永恒之蓝每次都需要两次才能…

VM-Linux基础操作命令

命令执行的本质&#xff1a; 当输入命令&#xff08;单词&#xff09;后敲击回车的那一刻。它就会立刻到以下图片&#xff0c;变量中的文件中去找对应的可执行文件 此路径又叫环境变量 1.shell命令提示符 默认&#xff1a;[rootlocalhost ~]# root&#xff1a;现已登录的账户名…

重构优化第三方查询接口返回大数据量的分页问题

# 问题描述 用户线上查询其上网流量详单数据加载慢&#xff0c;且有时候数据没有响应全~ 1、经排除是调用第三方数据量达10w条响应会超时&#xff0c;数据没正常返回 2、现有线上缓存分页也是加载慢数据不能正常展示 3、第三方接口返回类似报文jsonj&#…

基于Yolov8的光伏电池缺陷检测,引入ICCV2023 动态蛇形卷积和独家全网首发多维协作注意模块MCA,实现涨点创新十足

1.光伏电池缺陷数据集介绍 背景&#xff1a;太阳能作为一种极具吸引力的替代电力能源&#xff0c;太阳能光伏电池&#xff08;即光伏电池&#xff09;是太阳能发电系统的基础&#xff0c;一般情况下&#xff0c;电池中的各类缺陷会直接影响到光伏电池的光电转化效率和使用寿命…