返回介绍

快速入门 Quick Start

发布于 2024-04-14 00:45:03 字数 4010 浏览 0 评论 0 收藏 0

介绍是什么、它的工作原理、它的用途以及何时使用它。

PM2 进程管理

PM2 是一个守护进程管理器,它将帮助您管理和保持您的应用程序在线。 PM2 入门非常简单,它以简单直观的 CLI 形式提供,可通过 NPM 安装。

安装

管理应用程序状态很简单,这里是命令:

$ pm2 restart app_name
$ pm2 reload app_name
$ pm2 stop app_name
$ pm2 delete app_name

除了 app_name ,您还可以传递:

  • all 作用于所有进程
  • id 作用于特定的进程 ID

检查状态、日志、指标

现在您已经启动了这个应用程序,您可以检查它的状态、日志、指标,甚至可以使用 pm2.io 获取在线仪表板。

列出托管应用程序

对于 Node.js 应用程序,PM2 包括一个自动负载平衡器,它将在每个衍生进程之间共享所有 HTTP[s]/Websocket/TCP/UDP 连接。

要以集群模式启动应用程序:

$ pm2 start app.js -i max

此处 阅读有关集群模式的更多信息。

生态系统文件

您还可以创建一个称为生态系统文件的配置文件来管理多个应用程序。 要生成生态系统文件:

这将生成一个 ecosystem.config.js 文件:

module.exports = {
  apps : [{
    name: "app",
    script: "./app.js",
    env: {
      NODE_ENV: "development",
    },
    env_production: {
      NODE_ENV: "production",
    }
  }, {
     name: 'worker',
     script: 'worker.js'
  }]
}

And start it easily:

$ pm2 start ecosystem.config.js

此处 阅读有关应用程序声明的更多信息。

设置启动脚本

使用您在服务器启动/重新启动时管理的进程重新启动 PM2 至关重要。 要解决这个问题,只需运行此命令以生成一个活动的启动脚本:

$ pm2 startup

并冻结自动重生的进程列表:

$ pm2 save

此处 阅读有关启动脚本生成器的更多信息。

重新启动应用程序更改

使用 --watch 选项非常简单:

$ cd /path/to/my/app
$ pm2 start env.js --watch --ignore-watch="node_modules"

这将在当前目录+所有子文件夹中的任何文件更改时监视并重新启动应用程序,并且它将忽略 node_modules 文件夹中的任何更改 --ignore-watch="node_modules" ​。

然后,您可以使用 pm2 logs 来检查重新启动的应用程序日志。

更新 PM2

我们让它变得简单,版本之间没有重大变化,过程很简单:

$ npm install pm2@latest -g

然后更新内存中的 PM2 :

pm2 update

备忘单

以下是一些值得了解的命令。 只需使用示例应用程序或开发机器上当前的 Web 应用程序来尝试它们:

# Fork mode
pm2 start app.js --name my-api # Name process

# Cluster mode
pm2 start app.js -i 0        # 将根据可用的 CPU 使用 LB 启动最大进程
pm2 start app.js -i max      # 与上面相同,但已弃用。
pm2 scale app +3             # 将 `app` 增加 3 名工人
pm2 scale app 2              # 将 `app` 向上或向下扩展到总共 2 个工人

# Listing

pm2 list               # 显示所有进程状态
pm2 jlist              # 以原始 JSON 格式打印进程列表
pm2 prettylist         # 以美化 JSON 打印进程列表
pm2 describe 0         # 显示有关特定进程的所有信息
pm2 monit              # 监控所有进程

# Logs

pm2 logs [--raw]       # 在流中显示所有进程日志
pm2 flush              # 清空所有日志文件
pm2 reloadLogs         # 重新加载所有日志

# Actions

pm2 stop all           # 停止所有进程
pm2 restart all        # 重启所有进程
pm2 reload all         # 将 0s 停机时间重新加载(对于 NETWORKED 应用程序)
pm2 stop 0             # 停止特定进程 ID
pm2 restart 0          # 重启特定进程 id
pm2 delete 0           # 将从 pm2 列表中删除进程
pm2 delete all         # 将从 pm2 列表中删除所有进程

# Misc

pm2 reset <process>    # 重置元数据(重启时间...)
pm2 updatePM2          # 更新内存 pm2
pm2 ping               # 确保 pm2 守护进程已经启动
pm2 sendSignal SIGUSR2 my-app # 向脚本发送系统信号
pm2 start app.js --no-daemon
pm2 start app.js --no-vizion
pm2 start app.js --no-autorestart

下一步是什么?

如何更新 PM2

安装最新的 pm2 版本:

$ npm install pm2@latest -g

然后更新内存中的 PM2 :

pm2 update

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文