进程管理 (PM2) 教程

1. 概述

在开发和部署 Node.js 应用程序时,进程管理是一个至关重要的环节。PM2(Process Manager 2)是一个强大的进程管理工具,可以帮助你轻松管理 Node.js 应用程序的启动、停止、重启、监控和日志管理。本教程将详细介绍 PM2 的基本概念、安装方法、常用命令以及如何使用 PM2 管理你的 Express.js 应用程序。

2. PM2 的基本概念

2.1 什么是 PM2?

PM2 是一个用于 Node.js 应用程序的生产进程管理器。它可以帮助你:

  • 保持应用程序的持续运行(即使崩溃也能自动重启)。
  • 管理多个应用程序实例。
  • 监控应用程序的性能和资源使用情况。
  • 自动重新加载应用程序(热重载)。
  • 管理日志文件。

2.2 PM2 的主要功能

  • 自动重启:当应用程序崩溃时,PM2 会自动重启它。
  • 负载均衡:PM2 可以启动多个应用程序实例,并在它们之间进行负载均衡。
  • 日志管理:PM2 可以集中管理应用程序的日志,方便查看和分析。
  • 监控:PM2 提供了丰富的监控功能,可以实时查看应用程序的 CPU 和内存使用情况。
  • 集群模式:PM2 支持集群模式,可以在多核 CPU 上运行多个应用程序实例。

3. 安装 PM2

PM2 可以通过 npm 安装,安装过程非常简单。

3.1 安装步骤

  1. 打开终端或命令行工具。

  2. 运行以下命令安装 PM2:

    npm install pm2 -g
    

    这条命令会将 PM2 安装为全局工具,这样你就可以在任何目录下使用 PM2 命令。

3.2 验证安装

安装完成后,你可以通过以下命令验证 PM2 是否安装成功:

pm2 -v

如果安装成功,终端会显示 PM2 的版本号。

4. 使用 PM2 管理 Express.js 应用程序

4.1 启动应用程序

假设你已经创建了一个 Express.js 应用程序,并且它的入口文件是 app.js。你可以使用 PM2 启动这个应用程序:

pm2 start app.js

这条命令会启动你的 Express.js 应用程序,并将其置于 PM2 的管理之下。

4.2 查看应用程序状态

你可以使用以下命令查看所有由 PM2 管理的应用程序的状态:

pm2 list

这条命令会显示一个表格,列出所有应用程序的 ID、名称、状态、重启次数、CPU 使用率和内存使用率等信息。

4.3 停止应用程序

如果你想停止某个应用程序,可以使用以下命令:

pm2 stop <app_name_or_id>

其中 <app_name_or_id> 可以是应用程序的名称或 ID。

4.4 重启应用程序

如果你想重启某个应用程序,可以使用以下命令:

pm2 restart <app_name_or_id>

4.5 删除应用程序

如果你想从 PM2 的管理列表中删除某个应用程序,可以使用以下命令:

pm2 delete <app_name_or_id>

4.6 监控应用程序

PM2 提供了实时监控功能,可以查看应用程序的 CPU 和内存使用情况:

pm2 monit

这条命令会打开一个监控界面,显示所有应用程序的实时监控数据。

4.7 日志管理

PM2 可以集中管理应用程序的日志文件。你可以使用以下命令查看应用程序的日志:

pm2 logs <app_name_or_id>

这条命令会实时显示应用程序的日志输出。

5. 实践练习

5.1 创建一个简单的 Express.js 应用程序

首先,创建一个简单的 Express.js 应用程序。在你的项目目录下创建一个 app.js 文件,并添加以下代码:

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello, PM2!');
});

app.listen(port, () => {
  console.log(`App listening at http://localhost:${port}`);
});

5.2 使用 PM2 启动应用程序

在终端中运行以下命令启动你的 Express.js 应用程序:

pm2 start app.js

5.3 查看应用程序状态

运行以下命令查看应用程序的状态:

pm2 list

你应该会看到你的应用程序在列表中,并且状态为 online。

5.4 停止和重启应用程序

尝试停止和重启你的应用程序:

pm2 stop app
pm2 restart app

5.5 查看日志

运行以下命令查看应用程序的日志:

pm2 logs app

你应该会看到应用程序的日志输出。

6. 总结

通过本教程,你已经学会了如何使用 PM2 管理你的 Node.js 应用程序。PM2 是一个非常强大的工具,可以帮助你在生产环境中更好地管理你的应用程序。希望你能继续深入学习 PM2 的其他功能,如集群模式、负载均衡和自动重启等,以便更好地应对复杂的生产环境需求。

7. 进一步学习

  • 集群模式:PM2 的集群模式可以帮助你在多核 CPU 上运行多个应用程序实例,提高应用程序的性能和稳定性。
  • 负载均衡:PM2 支持在多个应用程序实例之间进行负载均衡,确保每个实例都能得到合理的请求分配。
  • 自动重启:PM2 可以在应用程序崩溃时自动重启它,确保应用程序的持续运行。
  • 日志管理:PM2 提供了强大的日志管理功能,可以帮助你集中管理应用程序的日志文件。

通过深入学习这些功能,你将能够更好地管理和优化你的 Node.js 应用程序。