📝 Add deployment document using PM2 (#853)

* Update deployment.md

重新提交 PM2 部署文档

* ♻️ 📝 Refactor PM2 deplotyment document

* ✏️ Fix typo in PM2 deployment document

* Update deployment.md

fix 表述歧义

* 🚚 copy docs to next version

Co-authored-by: Mix <32300164+mnixry@users.noreply.github.com>
Co-authored-by: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
This commit is contained in:
@刘作鱼 2022-04-30 14:40:25 +08:00 committed by GitHub
parent 505b4d46d0
commit 1e43b4df10
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 178 additions and 2 deletions

View File

@ -227,4 +227,92 @@ stdout_logfile_maxbytes=2MB
## 使用 PM2 部署
<!-- TODO -->
:::tip 提示
在阅读这一节的过程中, 你总是可以参照 [PM2 官方文档](https://pm2.keymetrics.io/docs/usage/quick-start/) 来得到更多的信息
:::
### 安装 PM2
需要有 NodeJS 10+环境来运行 PM2, ~~(什么 NTR)~~
然后通过以下命令安装即可:
```shell
npm install -g pm2
```
在安装完成后, 执行以下指令, 如果得到类似的输出则说明你安装成功了 PM2:
```shell
$ pm2 -V
5.2.0
```
### 在后台运行进程
:::tip 提示
以下步骤要求您在您 Bot 的工作目录下执行
如果您使用了虚拟环境, 请确保 Bot 启动命令能在虚拟环境中正常执行
换言之, Bot 程序需要在当前终端环境下正常运行
:::
#### 启动 Bot 进程
```shell
$ pm2 start "python -m nb_cli run" # 或者直接 nb run 也行
[PM2] Starting /usr/bin/bash in fork_mode (1 instance)
[PM2] Done.
┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ nb run │ default │ N/A │ fork │ 93061 │ 0s │ 0 │ online │ 0% │ 8.3mb │ mix │ disabled │
└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
```
此时 Bot 进程就在后台运行了, 注意到表格第一列的 ID, 它可以用来查看和控制进程的状态
#### 常用命令
更具体的用法请移步 PM2 官方文档, ~~如果想要详细示例建议直接上手试试~~
其中命令中的所有`<id>`应该替换为上文启动进程后返回的 ID
- 查看最近 150 行日志
- `pm2 log <id> --lines 150`
- 实时监控所有进程日志
- `pm2 monit`
- 展示当前 PM2 管理的所有进程
- `pm2 ls`
- 停止某个进程
- `pm2 stop <id>`
- 删除某个进程
- `pm2 del <id>`
- 重启某个进程
- `pm2 restart <id>`
- 保存当前进程列表
- `pm2 save`
- 恢复保存的进程列表
- `pm2 resurrect`
- 设置开机自动启动进程列表
- `pm2 startup`
- 需要执行过 `pm2 save`
如果不是 root 用户执行, 则需要手动添加指令返回的环境变量

View File

@ -227,4 +227,92 @@ stdout_logfile_maxbytes=2MB
## 使用 PM2 部署
<!-- TODO -->
:::tip 提示
在阅读这一节的过程中, 你总是可以参照 [PM2 官方文档](https://pm2.keymetrics.io/docs/usage/quick-start/) 来得到更多的信息
:::
### 安装 PM2
需要有 NodeJS 10+环境来运行 PM2, ~~(什么 NTR)~~
然后通过以下命令安装即可:
```shell
npm install -g pm2
```
在安装完成后, 执行以下指令, 如果得到类似的输出则说明你安装成功了 PM2:
```shell
$ pm2 -V
5.2.0
```
### 在后台运行进程
:::tip 提示
以下步骤要求您在您 Bot 的工作目录下执行
如果您使用了虚拟环境, 请确保 Bot 启动命令能在虚拟环境中正常执行
换言之, Bot 程序需要在当前终端环境下正常运行
:::
#### 启动 Bot 进程
```shell
$ pm2 start "python -m nb_cli run" # 或者直接 nb run 也行
[PM2] Starting /usr/bin/bash in fork_mode (1 instance)
[PM2] Done.
┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ nb run │ default │ N/A │ fork │ 93061 │ 0s │ 0 │ online │ 0% │ 8.3mb │ mix │ disabled │
└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
```
此时 Bot 进程就在后台运行了, 注意到表格第一列的 ID, 它可以用来查看和控制进程的状态
#### 常用命令
更具体的用法请移步 PM2 官方文档, ~~如果想要详细示例建议直接上手试试~~
其中命令中的所有`<id>`应该替换为上文启动进程后返回的 ID
- 查看最近 150 行日志
- `pm2 log <id> --lines 150`
- 实时监控所有进程日志
- `pm2 monit`
- 展示当前 PM2 管理的所有进程
- `pm2 ls`
- 停止某个进程
- `pm2 stop <id>`
- 删除某个进程
- `pm2 del <id>`
- 重启某个进程
- `pm2 restart <id>`
- 保存当前进程列表
- `pm2 save`
- 恢复保存的进程列表
- `pm2 resurrect`
- 设置开机自动启动进程列表
- `pm2 startup`
- 需要执行过 `pm2 save`
如果不是 root 用户执行, 则需要手动添加指令返回的环境变量