社区
其他技术讨论专区
帖子详情
golang 可执行程序注册为linux or windows 服务
weixin_38060998
2019-09-20 10:33:55
github.com\kardianos\service
参考:https://my.oschina.net/idufei/blog/710885
...全文
391
1
打赏
收藏
golang 可执行程序注册为linux or windows 服务
github.com\kardianos\service 参考:https://my.oschina.net/idufei/blog/710885
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38092208
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 ` **求解** 给个建议就可以
FactoCord:
Golang
中内置的Discord的Factorio机器人
FactoCord-适用于
Linux
的Factorio to Discord桥bot跑步确保您的.env文件与可执行文件/二进制文件位于同一目录中,可以使用.envexample模板有两种启动FactoCord的方法使用start.sh bash脚本(bash start.sh或./start....
Golang
Goroutine的使用
执行 goroutine 只需极少的栈内存(大概是4~5KB),当然会根据相应的数据伸缩。也正因为如此,可同时运行成千上万个并发任务。goroutine 比 thread 更易用、更高效、更轻便。 一般情况下,一个普通计算机跑几十个线程...
Golang
go语言 如何打包成
linux
上可以执行的文件
Golang
go语言 在
Windows
上如何打包成
linux
上可以执行的文件 在
Windows
上的cmd命令中执行: 运行环境为arm机器系统为
linux
: E:\ideaproject\goproject\src\hell>set GOARCH=arm64 E:\ideaproject\goproject\src...
linux
,
windows
命令行输出控制指令,带颜色的信息,多行刷新,进度条效果,
golang
linux
,
windows
命令行输出控制指令,带颜色的信息,多行刷新,进度条效果,
golang
golang
exec 执行 shell 如何同步输出/得到执行结果
但是用户在发起一次任务时,可能在不停的刷新log,想达到同步查看log的目的,但是CombinedOutput()方法只是在完全执行结束才返回整个shell的输出,所以肯定达不到效果,所以,我需要寻找其它方法达到程序一边执行log...
其他技术讨论专区
433
社区成员
791,270
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章