Files
Meshray-Manager/internal/tray/tray_linux.go
T
2026-06-30 15:14:37 +08:00

56 lines
1.2 KiB
Go

//go:build !windows
// +build !windows
package tray
import (
"fmt"
"os"
"os/signal"
"syscall"
"go.uber.org/zap"
)
// TrayManager 托盘管理器(非Windows平台实现)
type TrayManager struct {
logger *zap.Logger
webPort int
onExit func()
}
// NewTrayManager 创建托盘管理器
func NewTrayManager(logger *zap.Logger, webPort int, onExit func()) *TrayManager {
return &TrayManager{
logger: logger,
webPort: webPort,
onExit: onExit,
}
}
// Run 运行托盘(非Windows平台显示提示信息并阻塞)
func (t *TrayManager) Run() {
t.logger.Info("非Windows系统,跳过托盘初始化")
// 显示启动信息
fmt.Println("")
fmt.Println("========================================")
fmt.Println("🌐 MeshRay 服务已启动")
fmt.Println("========================================")
fmt.Printf("📍 Web 管理界面: http://localhost:%d\n", t.webPort)
fmt.Println("💡 提示: 使用 Ctrl+C 停止服务")
fmt.Println("========================================")
fmt.Println("")
// 等待退出信号
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
<-sigChan
t.logger.Info("收到退出信号,正在关闭...")
if t.onExit != nil {
t.onExit()
}
}