golang 可执行程序注册为linux or windows 服务

weixin_38075916 2019-09-20 09:59:22
github.com\kardianos\service

参考:https://my.oschina.net/idufei/blog/710885
...全文
139 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38108704 2019-09-20
  • 打赏
  • 举报
回复
``` package main import ( "log" "github.com/kardianos/service" "os" ) var logging service.Logger type program struct{} func (p *program) Start(s service.Service) error { logging.Info("开始服务") go p.run() return nil } func (p *program) Stop(s service.Service) error { logging.Info("停止服务") return nil } func (p *program) run() { // 这里放置程序要执行的代码…… logging.Info("run my ccc") } func main(){ //服务的配置信息 cfg := &service.Config{ Name: "simple_test", DisplayName: "a simple_test service", Description: "This is an simple_test Go service.", } // Interface 接口 prg := &program{} // 构建服务对象 s, err := service.New(prg, cfg) if err != nil { log.Fatal(err) } // logger 用于记录系统日志 errs := make(chan error, 5) logging, err = s.Logger(errs) if err != nil { log.Fatal(err) } go func() { for { err := <-errs if err != nil { log.Print(err) } } }() if len(os.Args) == 2 { //如果有命令则执行 err = service.Control(s, os.Args[1]) if err != nil { log.Fatal(err) } } else { //否则说明是方法启动了 err = s.Run() if err != nil { logging.Error(err) } } if err != nil { logging.Error(err) } } ``` `go build -o simple_test main.go` `./simple_test start` 注册完毕 `service simple_test status` **问题** 1、操作 service simple_test uninstall **报错** `simple_test: unrecognized service` 2、找到内部出错问题 `systemctl disable simple_test` 运行出错, :`Failed to execute operation: Connection timed out ` **求解** 给个建议就可以

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧