| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package main
- import (
- "flag"
- "fmt"
- "os"
- "rtu_linux_services/servicelib"
- "github.com/kardianos/service"
- "hnyfkj.com.cn/rtu/linux/baseapp"
- )
- var (
- Version = "0.0.0.1"
- BuildTime = ""
- )
- type program struct {
- name string
- webUI *WebUI
- }
- // Start should not block. Do the actual work async.
- func (p *program) Start(s service.Service) error {
- logCfgFile, err := servicelib.EnsureDefaultLogConfig()
- if err != nil {
- return err
- }
- baseapp.InitLogger(logCfgFile)
- baseapp.Logger.Infof("App Version: %s, Build Time: %s", Version, BuildTime)
- ui, err := NewWebUI(":8080")
- if err != nil {
- return err
- }
- p.webUI = ui
- baseapp.Logger.Infof("[%s] webui starting on http :8080 ...", p.name)
- go func() {
- if err := ui.Start(); err != nil {
- baseapp.Logger.Errorf("[%s] webui stopped: %v\n!!", p.name, err)
- os.Exit(1)
- }
- }()
- return nil
- }
- // Stop should not block. Return with a few seconds.
- func (p *program) Stop(s service.Service) error {
- if p.webUI != nil {
- return p.webUI.Stop()
- }
- return nil
- }
- func main() {
- baseapp.SetOptDirs(false, false, false, false)
- baseapp.InitPath()
- svcFlag := flag.String("service", "", "Control the yfkj-webui service.")
- flag.Parse()
- svcConfig := &service.Config{
- Name: "yfkj-webui",
- DisplayName: "yfkj-webui",
- Description: "Yunfei Device Web Management UI",
- Option: map[string]any{
- "Restart": "always",
- },
- }
- servicelib.WriteVersionFile(baseapp.EXEC_DIR, Version) //-> for 升级
- prg := &program{
- name: "WebUI",
- }
- svc, err := service.New(prg, svcConfig)
- if err != nil {
- fmt.Printf("%s.service creation failed: %v\n",
- svcConfig.Name, err)
- os.Exit(1)
- }
- if *svcFlag != "" {
- if err := service.Control(svc, *svcFlag); err != nil {
- fmt.Println(err)
- }
- return
- }
- if err := svc.Run(); err != nil {
- fmt.Println(err)
- os.Exit(1)
- }
- }
|