app开发定制公司pm2基本使用

1.pm2app开发定制公司的基本介绍

pm2app开发定制公司是的进程管理器,app开发定制公司利用它可以简化nodeapp开发定制公司任务的管理,app开发定制公司且内置了许多功能,app开发定制公司常用于后台脚本管理。

pm2特性

  • app开发定制公司自带热部署 - - - app开发定制公司当源文件更新 线上项目也会自动重启
  • 后台运行 - - - 不会占用实时窗口 会在后台运行
  • 服务信息查看 - - - 查看运行中程序的各项信息
  • 日志系统 - - - 可以随时查看程序的运行日志
  • 内置负载均衡 - - - 在cluster模式会自动使用轮询的方式达到负载均衡的效果
  • 多平台支持 - - - 在linux windows macOS 上都可以稳定的运行
  • 最大内存重启 - - - 可以设置最大内存限制超过限制则会自动重启;
    还有很多的特性 咱就不一一举例了感兴趣的朋友可以去官网查看学习 小的这就献上官网地址

2.pm2的安装

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

3.pm2的基本使用

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

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

// serve.jsvar 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")})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在项目根路径打开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配置文件配置
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

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

各项参数详解

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

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

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

4.pm2常用命令

1.停止进程

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

2.删除进程

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

3.重启进程

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

4.查看所有进程

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

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

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

6.查看日志

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

6.监控所有的进程

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

7.静态服务器

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

8.扩展实例

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

5.pm2配置文件

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

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': ''    }  }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

6.结尾

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

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发