Files
mayfly-go/server/resources/script/README.md
meilin.huang 847f5c7c90 feat: v1.11.0
2026-05-13 20:01:05 +08:00

206 lines
3.5 KiB
Markdown
Raw 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.
# Mayfly-Go 服务管理脚本使用说明
## 概述
`mayfly-go.sh` 是 Mayfly-Go 的统一服务管理脚本,支持启动、停止、重启和查看状态等操作。
## 快速开始
### 查看帮助
```bash
./mayfly-go.sh
```
### 启动服务
```bash
./mayfly-go.sh start
```
启动后会:
- 检查服务是否已在运行
- 验证二进制文件是否存在
- 自动设置执行权限
- 后台启动服务
- 保存 PID 到 `mayfly-go.pid`
### 停止服务
```bash
./mayfly-go.sh stop
```
停止时会:
- 优雅关闭服务(发送 SIGTERM
- 最多等待 10 秒
- 如无响应则强制关闭SIGKILL
- 清理 PID 文件
### 重启服务
```bash
./mayfly-go.sh restart
```
等同于先 stop 再 start。
### 查看状态
```bash
./mayfly-go.sh status
```
显示服务是否运行及进程 PID。
## 输出示例
### 启动
```
Starting mayfly-go...
✓ mayfly-go started successfully (PID: 12345)
```
### 停止
```
Stopping mayfly-go (PID: 12345)...
✓ mayfly-go stopped
```
### 状态(运行中)
```
● mayfly-go is running (PID: 12345)
```
### 状态(未运行)
```
○ mayfly-go is not running
```
## 日志查看
### 启动日志
启动日志记录服务的启动过程和错误信息:
```bash
# 查看启动日志
cat startup.log
# 实时查看启动日志
tail -f startup.log
```
### 运行日志
服务运行日志由 `config.yml` 中的日志配置决定,请查看配置文件中的日志设置。
```bash
# 根据配置的日志路径查看日志
tail -f <your-log-path>
# 查看最近 100 行
tail -n 100 <your-log-path>
# 搜索错误
grep -i error <your-log-path>
```
## 文件说明
| 文件 | 说明 |
|------|------|
| `bin/mayfly-go` | 主程序二进制文件 |
| `mayfly-go.sh` | 服务管理脚本 |
| `mayfly-go.pid` | 进程 PID 文件(自动创建) |
| `startup.log` | 启动日志文件(自动创建) |
| `config.yml` | 配置文件(包含日志配置) |
## 故障排查
### 启动失败
1. 检查二进制文件是否存在:`ls -la bin/mayfly-go`
2. 检查端口是否被占用:`lsof -i :8001`(假设使用 8001 端口)
3. 查看启动日志:`cat startup.log`
4. 查看配置文件中指定的运行日志路径,检查错误信息
### 无法正常停止
如果服务无法正常停止,可以手动清理:
```bash
# 查找进程
ps aux | grep mayfly-go
# 强制杀死进程
kill -9 <PID>
# 清理 PID 文件
rm -f mayfly-go.pid
```
### PID 文件不同步
如果 PID 文件存在但进程不存在,脚本会自动检测并重新创建:
```bash
# 手动清理
rm -f mayfly-go.pid
# 重新启动
./mayfly-go.sh start
```
## 高级用法
### 开机自启动
**systemd 方式(推荐):**
创建 `/etc/systemd/system/mayfly-go.service`
```ini
[Unit]
Description=Mayfly-Go Service
After=network.target
[Service]
Type=forking
User=mayfly
Group=mayfly
WorkingDirectory=/opt/mayfly-go
ExecStart=/opt/mayfly-go/mayfly-go.sh start
ExecStop=/opt/mayfly-go/mayfly-go.sh stop
ExecReload=/opt/mayfly-go/mayfly-go.sh restart
PIDFile=/opt/mayfly-go/mayfly-go.pid
[Install]
WantedBy=multi-user.target
```
启用并启动服务:
```bash
sudo systemctl enable mayfly-go
sudo systemctl start mayfly-go
sudo systemctl status mayfly-go
```
**crontab 方式:**
```bash
# 编辑 crontab
crontab -e
# 添加重启后自动启动
@reboot /opt/mayfly-go/mayfly-go.sh start
```
## 注意事项
1. 脚本需要在包含 `mayfly-go` 二进制文件的目录下运行
2. 确保有足够的权限执行二进制文件
3. 建议不要同时运行多个实例
4. 日志配置请在 `config.yml` 中设置