# 服务管理脚本使用说明 本项目为 `hzhub-admin`、`hzhub-ai` 和 `hzhub-portal-employee` 三个项目提供了后台运行管理脚本,方便开发调试。 ## 📋 脚本列表 每个项目根目录下都包含以下脚本: | 脚本 | 功能 | 说明 | |------|------|------| | `start.sh` | 启动服务 | 后台启动开发服务器 | | `stop.sh` | 停止服务 | 停止后台运行的服务 | | `restart.sh` | 重启服务 | 先停止后启动 | | `status.sh` | 查看状态 | 查看服务运行状态和最新日志 | | `logs.sh` | 查看日志 | 实时查看服务日志 | ## 🚀 快速开始 ### 1. 启动后端服务 (hzhub-ai) ```bash cd /data/hzhub/hzhub-ai ./start.sh ``` **输出示例:** ``` ========================================= 启动 hzhub-ai 后端服务 ========================================= 🚀 启动 Spring Boot 服务... ⏳ 等待服务启动中... ✅ 服务启动成功 PID: 12345 日志: /data/hzhub/hzhub-ai/logs/backend.log API: http://localhost:6039 ``` **访问地址:** http://localhost:6039 ### 2. 启动管理后台 (hzhub-admin) ```bash cd /data/hzhub/hzhub-admin ./start.sh ``` **访问地址:** http://localhost:5666 ### 3. 启动员工门户 (hzhub-portal-employee) ```bash cd /data/hzhub/hzhub-portal-employee ./start.sh ``` **访问地址:** http://localhost:5137 ## 📊 查看服务状态 ```bash # 查看后端服务状态 cd /data/hzhub/hzhub-ai ./status.sh # 查看管理后台状态 cd /data/hzhub/hzhub-admin ./status.sh # 查看员工门户状态 cd /data/hzhub/hzhub-portal-employee ./status.sh ``` **输出示例:** ``` ========================================= hzhub-ai 服务状态 ========================================= 状态: 🟢 运行中 PID: 12345 PID PPID CMD ELAPSED 12345 1 mvn spring-boot:run -Dspring- 00:15:32 日志文件: /data/hzhub/hzhub-ai/logs/backend.log API地址: http://localhost:6039 端口状态: ✅ 6039 端口正在监听 ``` ## 📝 查看实时日志 ```bash # 查看后端日志 cd /data/hzhub/hzhub-ai ./logs.sh # 或直接使用tail命令 tail -f /data/hzhub/hzhub-ai/logs/backend.log ``` 按 `Ctrl+C` 退出日志查看。 ## 🔄 重启服务 ```bash # 重启后端服务 cd /data/hzhub/hzhub-ai ./restart.sh # 重启管理后台 cd /data/hzhub/hzhub-admin ./restart.sh # 重启员工门户 cd /data/hzhub/hzhub-portal-employee ./restart.sh ``` ## 🛑 停止服务 ```bash # 停止后端服务 cd /data/hzhub/hzhub-ai ./stop.sh # 停止管理后台 cd /data/hzhub/hzhub-admin ./stop.sh # 停止员工门户 cd /data/hzhub/hzhub-portal-employee ./stop.sh ``` ## 💡 使用技巧 ### 启动顺序建议 1. **先启动后端服务** (hzhub-ai) ```bash cd /data/hzhub/hzhub-ai && ./start.sh ``` 2. **等待后端完全启动** (约30-60秒) ```bash ./status.sh # 查看端口6039是否监听 ``` 3. **启动前端应用** ```bash cd /data/hzhub/hzhub-admin && ./start.sh cd /data/hzhub/hzhub-portal-employee && ./start.sh ``` ### 一键启动所有服务 创建一个启动脚本 `/data/hzhub/start-all.sh`: ```bash #!/bin/bash echo "启动所有 HZHub 服务..." cd /data/hzhub/hzhub-ai ./start.sh sleep 10 cd /data/hzhub/hzhub-admin ./start.sh cd /data/hzhub/hzhub-portal-employee ./start.sh echo "所有服务启动完成!" ``` ### 一键停止所有服务 创建一个停止脚本 `/data/hzhub/stop-all.sh`: ```bash #!/bin/bash echo "停止所有 HZHub 服务..." cd /data/hzhub/hzhub-portal-employee ./stop.sh cd /data/hzhub/hzhub-admin ./stop.sh cd /data/hzhub/hzhub-ai ./stop.sh echo "所有服务已停止!" ``` ## ⚙️ 服务信息 | 项目 | 端口 | 日志文件 | PID文件 | |------|------|----------|---------| | hzhub-ai | 6039 | logs/backend.log | .pid | | hzhub-admin | 5666 | logs/dev.log | .pid | | hzhub-portal-employee | 5137 | logs/dev.log | .pid | ## 🔍 常见问题 ### Q: 服务启动失败怎么办? **A:** 检查以下几点: 1. 查看日志文件:`./logs.sh` 或 `tail -f logs/*.log` 2. 检查端口是否被占用:`netstat -tuln | grep 端口号` 3. 确认依赖是否安装:前端项目执行 `pnpm install` 4. 后端项目检查 Maven 是否可用:`mvn -v` ### Q: 如何确认服务是否完全启动? **A:** - **后端服务**:执行 `./status.sh` 查看6039端口是否监听 - **前端服务**:访问对应端口查看页面是否正常显示 ### Q: PID文件损坏怎么办? **A:** 手动删除PID文件: ```bash rm .pid ./start.sh ``` ### Q: 进程僵死无法停止? **A:** 查找并强制终止进程: ```bash # 查找进程 ps aux | grep "spring-boot\|vite\|pnpm" # 强制终止 kill -9 # 清理PID文件 rm .pid ``` ## 📁 日志管理 ### 日志位置 所有日志都保存在各项目的 `logs/` 目录下: ``` hzhub-ai/ ├── logs/ │ └── backend.log hzhub-admin/ ├── logs/ │ └── dev.log hzhub-portal-employee/ ├── logs/ │ └── dev.log ``` ### 日志轮转 建议定期清理日志文件: ```bash # 清空日志文件 > logs/backend.log # 或删除旧日志 rm logs/*.log ``` ## ⚠️ 注意事项 1. **端口冲突**:确保端口 6039、5666、5137 未被其他服务占用 2. **资源占用**:后端服务启动较慢(30-60秒),请耐心等待 3. **开发模式**:这些脚本仅用于开发调试,生产环境请使用 Docker 部署 4. **数据持久化**:前端开发服务器会自动热重载,后端服务需要手动重启 ## 🔗 相关文档 - [项目主文档](../CLAUDE.md) - [部署文档](../hzhub-deploy/README.md) - [开发环境配置](../docs/project/plan/phase-1.md)