Files
pig-farm-controller/main.go
2025-09-07 19:57:25 +08:00

52 lines
1.2 KiB
Go

// Package main 是猪场控制系统的入口点
// 负责初始化核心应用并管理其生命周期
package main
import (
"os"
"os/signal"
"syscall"
"git.huangwc.com/pig/pig-farm-controller/internal/config"
"git.huangwc.com/pig/pig-farm-controller/internal/core"
"git.huangwc.com/pig/pig-farm-controller/internal/logs"
)
func main() {
// 初始化日志记录器
logger := logs.NewLogger()
// 加载配置
cfg := config.NewConfig()
if err := cfg.Load("config.yml"); err != nil {
logger.Error("Failed to load config: " + err.Error())
os.Exit(1)
}
// 创建核心应用实例
app := core.NewApplication(cfg)
// 启动核心应用
if err := app.Start(); err != nil {
logger.Error("Failed to start application: " + err.Error())
os.Exit(1)
}
// 记录应用启动成功
logger.Info("Application started successfully")
// 等待中断信号以优雅地关闭应用
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
<-sigChan
// 停止核心应用
if err := app.Stop(); err != nil {
logger.Error("Failed to stop application: " + err.Error())
os.Exit(1)
}
// 记录应用停止成功
logger.Info("Application stopped successfully")
}