mirror of
https://gitee.com/dromara/mayfly-go
synced 2026-05-16 16:05:18 +08:00
Mayfly-Go 服务管理脚本使用说明
概述
mayfly-go.sh 是 Mayfly-Go 的统一服务管理脚本,支持启动、停止、重启和查看状态等操作。
快速开始
查看帮助
./mayfly-go.sh
启动服务
./mayfly-go.sh start
启动后会:
- 检查服务是否已在运行
- 验证二进制文件是否存在
- 自动设置执行权限
- 后台启动服务
- 保存 PID 到
mayfly-go.pid
停止服务
./mayfly-go.sh stop
停止时会:
- 优雅关闭服务(发送 SIGTERM)
- 最多等待 10 秒
- 如无响应则强制关闭(SIGKILL)
- 清理 PID 文件
重启服务
./mayfly-go.sh restart
等同于先 stop 再 start。
查看状态
./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
日志查看
启动日志
启动日志记录服务的启动过程和错误信息:
# 查看启动日志
cat startup.log
# 实时查看启动日志
tail -f startup.log
运行日志
服务运行日志由 config.yml 中的日志配置决定,请查看配置文件中的日志设置。
# 根据配置的日志路径查看日志
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 |
配置文件(包含日志配置) |
故障排查
启动失败
- 检查二进制文件是否存在:
ls -la bin/mayfly-go - 检查端口是否被占用:
lsof -i :8001(假设使用 8001 端口) - 查看启动日志:
cat startup.log - 查看配置文件中指定的运行日志路径,检查错误信息
无法正常停止
如果服务无法正常停止,可以手动清理:
# 查找进程
ps aux | grep mayfly-go
# 强制杀死进程
kill -9 <PID>
# 清理 PID 文件
rm -f mayfly-go.pid
PID 文件不同步
如果 PID 文件存在但进程不存在,脚本会自动检测并重新创建:
# 手动清理
rm -f mayfly-go.pid
# 重新启动
./mayfly-go.sh start
高级用法
开机自启动
systemd 方式(推荐):
创建 /etc/systemd/system/mayfly-go.service:
[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
启用并启动服务:
sudo systemctl enable mayfly-go
sudo systemctl start mayfly-go
sudo systemctl status mayfly-go
crontab 方式:
# 编辑 crontab
crontab -e
# 添加重启后自动启动
@reboot /opt/mayfly-go/mayfly-go.sh start
注意事项
- 脚本需要在包含
mayfly-go二进制文件的目录下运行 - 确保有足够的权限执行二进制文件
- 建议不要同时运行多个实例
- 日志配置请在
config.yml中设置