230 lines
6.1 KiB
Markdown
230 lines
6.1 KiB
Markdown
# 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
|
||
```
|
||
|
||
这会完全清理所有相关文件和配置。 |