pm2的基本使用及命令

PM2的基本使用

简介

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

详细使用请看官方文档

官方文档:https://pm2.keymetrics.io/docs/

安装

$ npm install pm2@latest -g
# 或
$ yarn global add pm2

这里我使用express框架创建两个本地服务
index.js

const express = require('express');
const app = express();
app.get('/', (req, res) => {
  res.send('index.js---------page')
})
app.listen(3333,()=>{
  console.log('server run http://localhost:3333');
})

main.js

const express = require('express');
const app = express();
app.get('/', (req, res) => {
  res.send('main.js--------page');
})
app.listen(3030,()=>{
  console.log('server run http://localhost:3030');
})

启动项目

$ pm2 start index.js
$ pm2 start main.js

pm2的基本使用及命令_第1张图片

地址栏访问

pm2的基本使用及命令_第2张图片
pm2的基本使用及命令_第3张图片

列出 PM2 管理的所有应用程序的状态:

$ pm2 ls
# 或
$ pm2 list
# 或
$ pm2 status

pm2的基本使用及命令_第4张图片

停止

# 停止所有进程
$ pm2 stop all
# 根据应用名停止
pm2 stop [AppName]
# 根据应用ID停止
pm2 stop [ID]

pm2的基本使用及命令_第5张图片

重启

# 重启所有进程
$ pm2 restart all
# 根据应用名重启
pm2 restart [AppName]
# 根据应用ID重启
pm2 restart [ID]

0秒停机重载

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

$ pm2 reload index.js

删除应用程序

# 关闭并删除所有进程
pm2 delete all
# 根据进程名关闭并删除进程
pm2 delete [AppName]
# 根据进程ID关闭并删除进程
pm2 delete [ID]

实时显示日志

$ pm2 logs

要挖掘较旧的日志,请执行以下操作

$ pm2 logs --lines 200

基于终端的仪表板

这是一个直接适合您的终端的实时仪表板

$ pm2 monit

pm2的基本使用及命令_第6张图片

监控和诊断Web界面

基于 Web 的仪表板,带有诊断系统的跨服务器:

$ pm2 plus

更改时重新启动应用程序

$ pm2 start main.js --watch --ignore-watch="node_modules"

这将监视并重新启动应用程序,从当前目录所有子文件夹进行任何文件更改,它将忽略node_modules文件夹 --ignore-watch=“node_modules” 中的任何更改,可以使用 pm2 logs 检查重新启动的应用日志。

更新pm2

$ npm install pm2@latest -g

$ pm2 update

集群模式

对于 Node.js 应用程序,PM2 包含一个自动负载均衡器,它将在每个生成的进程之间共享所有 HTTP[s]/Websocket/TCP/UDP 连接。
要在群集模式下启动应用程序:

$ pm2 start app.js -i max

PM2配置文件

生成示例配置文件,键入以下命令:

$ pm2 init simple

pm2的基本使用及命令_第7张图片

操作配置文件

与对应用程序进行操作相比,可以无缝地启动/停止/重新启动/删除配置文件中包含的所有应用程序:

# 启动所有应用程序
pm2 start ecosystem.config.js

# 停止一切
pm2 stop ecosystem.config.js

# 重新启动所有
pm2 restart ecosystem.config.js

# 重新加载所有
pm2 reload ecosystem.config.js

# 删除所有
pm2 delete ecosystem.config.js

根据特定流程操作

可以使用特定应用程序的名称和选项 --only 对特定应用程序执行操作:

可以操作多个应用

pm2 start ecosystem.config.js --only "api-app,worker-app"

切换环境

可以通过 env_* 选项指定不同的环境变量集

module.exports = {
  apps : [{
    name   : "app1",
    script : "./app.js",
    env_production: {
       NODE_ENV: "production" // 生产环境
    },
    env_development: {
       NODE_ENV: "development"  // 开发环境
    }
  }]
}

在不同环境中的变量之间切换,请指定 --env [env name] 选项:

$ pm2 start process.json --env production
$ pm2 restart process.json --env development

你可能感兴趣的:(javascript,开发语言,ecmascript,node.js)