Files
qiming/qiming-mcp-proxy/scripts/README.md
2026-06-01 13:03:20 +08:00

230 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Document Parser 服务管理指南
本目录包含用于在 Linux 系统上管理 document-parser 服务的脚本和配置文件。
## 文件说明
- `document-parser.service` - systemd 服务配置文件模板(脚本会动态生成实际的服务文件)
- `document-parser-manager.sh` - 统一管理脚本,整合了部署和管理功能,支持动态路径配置
- `README.md` - 本说明文档
## 快速开始
### 1. 准备工作
确保你已经编译好了 `document-parser` 可执行文件,并且有相应的配置文件 `config.yml`
### 2. 一键部署(推荐)
```bash
# 给管理脚本添加执行权限
chmod +x document-parser-manager.sh
# 自动部署服务到脚本所在目录(包含安装、启动、开机自启)
sudo ./document-parser-manager.sh deploy
# 或者部署到指定目录
sudo DOCUMENT_PARSER_INSTALL_DIR=/opt/document-parser ./document-parser-manager.sh deploy
# 仅部署但不启动服务
sudo ./document-parser-manager.sh deploy --no-start
# 部署但不启用开机自启
sudo ./document-parser-manager.sh deploy --no-enable
```
部署过程会:
- 将可执行文件复制到安装目录(默认为脚本所在目录)
- 复制配置文件到安装目录
- 动态生成并安装 systemd 服务文件
- 重新加载 systemd 配置
- 启动服务(除非使用 --no-start
- 启用开机自启(除非使用 --no-enable
### 3. 查看服务状态
```bash
# 查看服务状态
./document-parser-manager.sh status
```
## 完整命令列表
### document-parser-manager.sh 统一脚本
```bash
# 部署命令
sudo ./document-parser-manager.sh deploy # 一键部署
sudo ./document-parser-manager.sh deploy --no-start # 部署但不启动
sudo ./document-parser-manager.sh deploy --no-enable # 部署但不启用开机自启
# 服务管理
sudo ./document-parser-manager.sh install # 仅安装服务
sudo ./document-parser-manager.sh start # 启动服务
sudo ./document-parser-manager.sh stop # 停止服务
sudo ./document-parser-manager.sh restart # 重启服务
./document-parser-manager.sh status # 查看状态
# 开机自启管理
sudo ./document-parser-manager.sh enable # 启用开机自启
sudo ./document-parser-manager.sh disable # 禁用开机自启
# 其他操作
sudo ./document-parser-manager.sh uninstall # 卸载服务
./document-parser-manager.sh logs # 查看日志
./document-parser-manager.sh help # 显示帮助
```
### 常用操作示例
#### 完整的服务部署流程
```bash
# 1. 编译项目(在项目根目录)
cargo build --release --bin document-parser
# 2. 复制可执行文件到脚本目录
cp target/release/document-parser scripts/
# 3. 复制配置文件到脚本目录(如果有)
cp document-parser/config.yml scripts/
# 4. 进入脚本目录
cd scripts/
# 5. 一键部署(推荐)
sudo ./document-parser-manager.sh deploy
# 或者手动步骤部署
sudo ./document-parser-manager.sh install
sudo ./document-parser-manager.sh start
sudo ./document-parser-manager.sh enable
# 6. 检查服务状态
./document-parser-manager.sh status
```
#### 更新服务
```bash
# 1. 停止服务
sudo ./document-parser-manager.sh stop
# 2. 复制新的可执行文件
cp ../target/release/document-parser /opt/document-parser/
# 3. 启动服务
sudo ./document-parser-manager.sh start
# 或者重新部署(会覆盖旧文件)
sudo ./document-parser-manager.sh deploy
```
#### 查看日志和调试
```bash
# 实时查看日志
./document-parser-manager.sh logs
# 查看最近的日志
journalctl -u document-parser -n 50
# 查看服务状态详情
systemctl status document-parser -l
```
## 服务配置说明
### 服务配置说明
服务配置文件会根据实际安装路径动态生成,包含以下主要配置:
- **工作目录**: 安装目录(默认为脚本所在目录)
- **可执行文件**: `{安装目录}/document-parser`
- **自动重启**: 服务异常退出时会自动重启
- **日志记录**: 使用 systemd journal 记录日志
- **安全配置**: 启用了多项安全限制
- **资源限制**: 设置了文件描述符和进程数限制
- **动态配置**: 根据 `DOCUMENT_PARSER_INSTALL_DIR` 环境变量或脚本所在目录生成
### 环境变量
服务默认设置了以下环境变量:
- `RUST_LOG=info` - 设置日志级别
- `CONFIG_PATH={安装目录}/config.yml` - 配置文件路径(动态生成)
部署时可以通过以下环境变量控制:
- `DOCUMENT_PARSER_INSTALL_DIR` - 指定安装目录(默认为脚本所在目录)
可以通过编辑 `/etc/systemd/system/document-parser.service` 文件来修改这些配置。
## 故障排除
### 常见问题
1. **服务启动失败**
```bash
# 查看详细错误信息
systemctl status document-parser -l
journalctl -u document-parser -n 20
```
2. **权限问题**
```bash
# 确保可执行文件有执行权限
chmod +x /opt/document-parser/document-parser
```
3. **配置文件问题**
```bash
# 检查配置文件是否存在和格式正确
ls -la /opt/document-parser/config.yml
```
4. **端口占用**
```bash
# 检查端口是否被占用
netstat -tlnp | grep :端口号
```
### 手动操作
如果脚本出现问题,也可以手动使用 systemctl 命令:
```bash
# 手动启动服务
sudo systemctl start document-parser
# 手动停止服务
sudo systemctl stop document-parser
# 手动重启服务
sudo systemctl restart document-parser
# 查看服务状态
systemctl status document-parser
# 启用开机自启
sudo systemctl enable document-parser
# 禁用开机自启
sudo systemctl disable document-parser
```
## 安全注意事项
1. **文件权限**: 确保只有 root 用户可以修改服务文件
2. **配置安全**: 不要在配置文件中存储明文密码
3. **网络安全**: 根据需要配置防火墙规则
4. **日志安全**: 定期清理日志文件,避免磁盘空间不足
## 卸载服务
如果需要完全移除服务:
```bash
# 卸载服务(会停止服务、禁用自启、删除文件)
sudo ./document-parser-manager.sh uninstall
```
这会完全清理所有相关文件和配置。