# PM2 应用状态

URL: https://caijiao.org/pm2/start-management/app-status
Source: docs/pm2/start-management/app-status.md
Description: 了解如何通过 PM2 查看和管理 Node.js 应用的状态。PM2 提供了强大的状态监控功能，帮助你跟踪应用的运行情况、资源使用和错误日志，确保应用的稳定运行。

PM2 提供了实时的应用状态监控功能，可以让你轻松查看 Node.js 应用的运行状态。通过 PM2 的状态管理，你可以有效地跟踪应用的资源使用、进程状态以及日志输出，从而及时发现问题并进行处理。

## 1. 查看应用状态

要查看当前应用的状态，使用 `pm2 status` 命令。该命令会列出所有正在运行的应用，并显示有关每个应用的详细信息，包括进程 ID、运行状态、内存使用情况、CPU 占用率等。

```bash
pm2 status
```

输出示例：

```txt
┌─────┬──────────────┬────────┬───┬──────┬────────┬───┬─────────────┬─────────────┐
│ id  │ name         │ mode   │ ↺ │ status│ cpu    │ memory │ uptime     │
├─────┼──────────────┼────────┼───┼──────┼────────┼───┼─────────────┼─────────────┤
│ 0   │ my-app       │ fork   │ 0 │ online│ 0.5%   │ 50MB  │ 3h          │
└─────┴──────────────┴────────┴───┴──────┴────────┴───┴─────────────┴─────────────┘
```

在输出中，你可以看到以下列：

* **id**: 应用的唯一标识符。
* **name**: 应用的名称。
* **mode**: 启动模式（`fork` 或 `cluster`）。
* **↺**: 应用的重启次数。
* **status**: 当前应用的运行状态（如 `online` 或 `stopped`）。
* **cpu**: 应用使用的 CPU 百分比。
* **memory**: 应用使用的内存量。
* **uptime**: 应用的运行时长。

## 2. 查看单个应用的详细状态

除了查看所有应用的状态外，你还可以查看单个应用的详细状态。使用 `pm2 show <app_name>` 命令，替换 `<app_name>` 为你要查看的应用名称。

```bash
pm2 show my-app
```

这将输出该应用的详细状态信息，包括进程 ID、内存和 CPU 使用情况、日志路径、环境变量等。

示例输出：

```txt
Describing process with id 0 - name my-app
--------------------------------------------------------------
pid             1234
status          online
name            my-app
cpu             0.5%
memory          50MB
user            root
watching        no
uptime          3h
script path     /path/to/my-app/app.js
```

## 3. 检查应用的日志

PM2 还允许你查看应用的日志，包括标准输出日志和错误日志。使用以下命令查看应用的实时日志：

```bash
pm2 logs my-app
```

如果你希望只查看错误日志，可以使用：

```bash
pm2 logs my-app --err
```

这将显示应用的错误日志，有助于快速定位和解决问题。

## 4. 停止、重启和删除应用

* **停止应用**：你可以使用 `pm2 stop <app_name>` 来停止应用。

  ```bash
  pm2 stop my-app
  ```

* **重启应用**：使用 `pm2 restart <app_name>` 来重启应用。

  ```bash
  pm2 restart my-app
  ```

* **删除应用**：如果你不再需要某个应用，可以使用 `pm2 delete <app_name>` 删除它。

  ```bash
  pm2 delete my-app
  ```

## 5. 结语

通过 PM2 的状态管理功能，你可以轻松地查看和管理应用的运行状态。无论是应用的内存、CPU 使用情况，还是日志和错误处理，PM2 都提供了强大的工具来帮助你保持应用的稳定性和高效性。

使用 `pm2 status` 和其他相关命令，可以快速诊断并解决可能出现的任何问题，确保应用平稳运行。
