2025-11-26 11:39:20 +08:00
|
|
|
|
package main
|
|
|
|
|
|
|
2025-12-01 15:45:05 +08:00
|
|
|
|
import (
|
|
|
|
|
|
client "client/internal"
|
|
|
|
|
|
"client/internal/updater"
|
|
|
|
|
|
"log"
|
|
|
|
|
|
"os"
|
|
|
|
|
|
"os/signal"
|
|
|
|
|
|
"syscall"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
const VERSION string = "version advanced"
|
2025-12-05 13:59:39 +08:00
|
|
|
|
const PROXY_URL string = "18.183.240.108:2345" // 服务地址
|
|
|
|
|
|
const REMOTE_UPDATE_URL = "https://test.m2pool.com/api/lease" // 远程更新服务器地址
|
2025-11-26 11:39:20 +08:00
|
|
|
|
|
|
|
|
|
|
func main() {
|
2025-12-01 15:45:05 +08:00
|
|
|
|
// 启动前检查更新
|
|
|
|
|
|
log.Println("检查更新...")
|
|
|
|
|
|
needRestart, err := updater.CheckAndUpdate(REMOTE_UPDATE_URL, VERSION)
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
log.Printf("更新检查失败,继续运行当前版本:%v", err)
|
|
|
|
|
|
} else if needRestart {
|
|
|
|
|
|
log.Println("更新完成!请重启程序以使用新版本。")
|
|
|
|
|
|
os.Exit(0)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 在单独的 goroutine 中启动客户端逻辑
|
|
|
|
|
|
go client.Star(PROXY_URL)
|
|
|
|
|
|
|
|
|
|
|
|
// 监听系统信号,实现优雅退出
|
|
|
|
|
|
sigCh := make(chan os.Signal, 1)
|
|
|
|
|
|
signal.Notify(sigCh, os.Interrupt, syscall.SIGTERM)
|
|
|
|
|
|
|
|
|
|
|
|
sig := <-sigCh
|
|
|
|
|
|
log.Printf("收到退出信号: %v,客户端准备退出...", sig)
|
|
|
|
|
|
// 停止客户端(包括持续挖矿)
|
|
|
|
|
|
client.StopClient()
|
2025-11-26 11:39:20 +08:00
|
|
|
|
}
|