IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 每天分享一点运维小知识---pm2工具 -> 正文阅读

[系统运维]每天分享一点运维小知识---pm2工具


前言

对于后台进程的管理,常用的工具是crontab,可用于两种场景:定时任务和常驻脚本。关于常驻脚本,今天介绍一款更好用的工具:pm2,基于nodejs开发的进程管理器,适用于后台常驻脚本管理,同时对node网络应用有自建负载均衡功能。官方的说法,pm2 是一个带有负载均衡功能的Node应用的进程管理器,个人认为,并不准确,因为pm2支持多种语言,只是对于除node之外的其他进程无负载均衡的能力。
在这里插入图片描述

一、pm2特点

说一些pm2有哪些优点好处呢?

  • 支持进程行为配置 ,即可以通过配置,实现对pm2管理应用的一些基础属性更新修改,如应用名称,启动模式等;

  • 支持集群模式,支持负载均衡,但因采用nodejs的cluster模块实现,仅适用于nodejs进程;

  • 支持source map,此项针对js, source map文件是js源文件的信息文件,里面存储着源文件的位置信息;

  • 支持热重启;

  • 支持部署工作流,pm2可依据测试环境和线上环境自动部署到不同的服务器,同时运行在不同配置下;

  • 支持监听重启,在文件更新等情况下可实现进程自动重启;

  • 支持linux的startup进程启动,startup是指系统boot, 进程自启动,如centos的chkconfig;

  • 日志管理,两种日志,pm2系统日志与管理的进程日志,默认会把进程的控制台输出记录到日志中;

  • 命令自动补全功能,个人感觉这个功能意义不大,而且尝试了一下,没有原生的linux命令自动补全反应敏捷;

  • 监控功能,pm2 monit监控cpu和memory使用情况,keymetrics监控更为详细;

  • 支持开发调试模式,非后台运行,pm2-dev start ;

  • 支持pm2模块开发,实现pm2的功能扩展;

  • keymetrics监控,比pm2 monit监控更为详细友好,通过web页面展示;

  • 最大内存重启,设置最大内存限制,超过限制自动重启;

  • 编程API,提供API供开发者通过编程方式灵活管理进程;

  • 以上简要概述了pm2进程管理工具的特点。

二、pm2命令详解

pm2常用命令

常用命令通常都是比较简单。下面列举一些pm2常用的管理命令

  • pm2 start <script_file|config_file> [options] 启动指定应用,如pm2 start index.js --name httpServer;
    在这里插入图片描述

  • pm2 stop [options] 停止指定应用,如pm2 stop httpServer;
    也可以执行他目录下得 pm2-start.sh 脚本里面用. pm2-start.sh 执行输入0就可以关闭在执行得脚本

  • pm2 reload|restart [options] 重启指定应用,如pm2 restart httpServer;

  • pm2 show [options] 显示指定应用详情,如pm2 show httpServer;

  • pm2 delete [options] 删除指定应用,如pm2 delete httpServer,如果修改应用配置行为,最好先删除应用后,重新启动方才生效,如修改脚本入口文件;

  • pm2 kill 杀掉pm2管理的所有进程;

  • pm2 logs 查看指定应用的日志,即标准输出和标准错误;
    在这里插入图片描述

  • pm2 monit 监控各个应用进程cpu和memory使用情况
    在这里插入图片描述

三、如何安装一个pm2?

pm2是一个进程管理工具,可以用它来管理node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能,在前端和nodejs的世界中用的很多。
pm2是基于npm进行安装的,在安装pm2之前要先安装npm

3.1安装node.js

若服务器上已有node.js,可跳过此步,可以通过此命令查看有无node.js

node -v

pm2服务依赖node.js服务,若服务器上无node.js服务,需要先安装node.js; linux安装node.js
这里得node.js你可以去官方下载你自己系统对应得版本 http://nodejs.cn/download/

wget https://nodejs.org/dist/vv16.17.0/node-vv16.17.0-linux-x64.tar.xz     // 下载
tar xf  node-vv16.17.0-linux-x64.tar.xz              // 解压
cd node-vv16.17.0-linux-x64                          // 进入解压目录
./bin/node -v                                       // 执行node命令 查看版本
v16.17.0

这里可以软链接一下方便以后得使用

ln -s /usr/local/node/bin/node   /usr/bin       //这里得地址依据你自己安装的node地址自行修改
ln -s /usr/local/node/bin/npm /usr/bin 
或者ln -s  $nodejs_hom2/bin/npm   /usr/local/bin/ 
   ln -s  $nodejs_hom2/bin/node   /usr/local/bin/

这时你直接输入node -v就可以显示你安装node对应的版本号了到这里node安装结束
在这里插入图片描述
在这里插入图片描述

3.2安装pm2

全局安装

npm install -g pm2

安装完之后会将pm2模块安装在$nodejs_home/lib/node_modules/pm2下,然后将pm2做软连接

ln -s /usr/local/node/bin/pm2 /usr/bin
ln -s $nodejs_hom2/bin/pm2   /usr/local/bin/  //建立软连接
pm2 -v                                        //查看pm2版本
4.5.0

这里如果你不折到pm2具体安装在哪了你可以

which pm2   //查询安装路径

在这里插入图片描述

这时pm2也可以用了
在这里插入图片描述

在这里插入图片描述

3.3离线安装pm2

如果服务器无法联网,那么也就无法使用全局安装的命令进行在线安装,需要进行离线安装,最简单的方法是,找到一台可以在线安装的服务器,进行pm2的安装,安装完成后,利用如下命令,直接进入到pm2的安装路径

cd $(npm config get prefix)/lib/node_modules   //进入node.js的node_modules路径
ls                                             //查看
npm  pm2

然后将这个目录下的pm2打包,上传至需要离线安装pm2服务器的对应目录

tar xzvf pm2.tar.gz    //解压
ln -s  $nodejs_hom2/lib/node_modules/pm2/bin/pm2   /usr/local/bin/   //建立软连接
pm2 -v                 //查看pm2版本
4.5.0	
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 21:17:28  更:2022-10-08 21:21:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/19 9:30:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码