Go 编写开机自启动服务
点击链接查看我的个人博客,文章更全更详细
需要用到的包
github.com/kardianos/service
package mainimport ("fmt""os""sync""github.com/kardianos/service"
)type program struct {log service.Loggercfg *service.Config
}func (p *program) Start(s service.Service) error {go p.run()return nil
}func (p *program) run() {fmt.Println("fsdfasdfsd")//这里写运行时的代码wg.Done()
}func (p *program) Stop(s service.Service) error {return nil
}var wg sync.WaitGroupfunc main() {wg.Add(1)svcConfig := &service.Config{Name: "test-service",DisplayName: "test-service",Description: "test-service",}prg := &program{}s, err := service.New(prg, svcConfig)if err != nil {fmt.Println(err.Error())}if len(os.Args) > 1 {if os.Args[1] == "install" {x := s.Install()if x != nil {fmt.Println("error:", x.Error())return}fmt.Println("服务安装成功")return} else if os.Args[1] == "uninstall" {x := s.Uninstall()if x != nil {fmt.Println("error:", x.Error())return}fmt.Println("服务卸载成功")return}}err = s.Run()if err != nil {fmt.Println(err.Error())}wg.Wait()
}
Mac
go build# 需要权限
sudo go ./main install # 安装服务 sudo go ./main uninstall # 卸载服务cd /Library/LaunchDaemons
ls # 查看安装的服务# 启动服务
launchctl load test-service.plist# 停止服务
launchctl unload test-service.plist
Linux
# 将上面代码交叉编译成linux可执行文件 扔到服务器上./main installcd /lib/systemd/system/或 /etc/systemd/system(中)
ls# 启动
systemctl start test-service.service# 停止
systemctl stop test-service.servicesystemctl enable test-service.service # 设置服务开机自启动
systemctl is-enabled test-service.service # 查询是否自启动服务
systemctl disable test-service.service # 取消服务器开机自启动
systemctl list-units --type=service # 列出正在运行的服务
Go 编写开机自启动服务相关推荐
- linux 设置开机自启动服务命令,linux开机自启动服务优化设置命令
1.设置成英文字符,避免出现乱码 [root@xuegod62 ~]# LANG=en 2.两种配置linux开机自启动服务命令: 1) [root@xuegod62 ~]# ntsysv 2) [r ...
- linux实现开机自启动服务/脚本
linux实现开机自启动服务或者开机自运行用户自定义脚本有三种方式 方式一: 执行 systemctl enable 服务名 命令,将对应服务的.service文件软链接到 /etc/systemd/ ...
- centos7 systemctl配置开机自启动服务
centos7 systemctl配置开机自启动服务 centos7使用systemctl替代原来/etc/init.d,按官方的说法是提高系统服务的运行效率.服务配置更加简单易用,对于一些自定义的服 ...
- 将自己写的脚本添加至开机自启动服务和chkconfig的原理
将自己写的脚本添加至开机自启动服务和chkconfig的原理 创建脚本测试 [root@anuo ~]# vim anuo.sh --创建个脚本 # !/bin/bash # chkconfig: 3 ...
- Centos 下添加开机自启动服务和脚本
最近刚玩Centos7的系统,跟Centos6还是很多方面有改变的,这里记录一下怎么在Centos7下添加开机自启动脚本和服务的方法. 1.添加开机自启服务 我这里以docker 服务为例,设置如下两 ...
- Ubuntu编写开机自启动脚本(转载)
From:http://blog.csdn.net/marujunyy/article/details/8466255 1.首先编写一个简单的shell脚本test.sh #! /bin/bash e ...
- linux设置activemq开机启动,Activemq(centos7)开机自启动服务
编辑服务文件 vi /etc/init.d/activemq 文件内容如下 #!/bin/bash # chkconfig: 2345 10 90 # description: activemq .. ...
- Tomcat开启APR模式并设置Tomcat为开机自启动服务
一.Tomcat Tomcat Connector(Tomcat连接器)有三种运行模式:bio.nio.apr. 1.BIO模式 阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作 ...
- 麒麟系统开机自启动服务、执行脚本、命令
rc.local是一个较旧Linux启动加载脚本(目前主流系统主要用systemctl控制开机启动),目前仍然可用 1.普通命令可以直接写在rc.local里,(rc.local须有执行权限,没有的话 ...
最新文章
- Xamarin.Forms教程开发的Xcode的下载安装
- 完美解答35K月薪的MySQL面试题(三)MySQL是如何实现事务的?
- http://4526621.blog.51cto.com/4516621/1343369
- 万劫不复:恐怖悬疑话剧《下一个就是你》
- Excel函数 (使用 「index + match」代替 vlookup进行查询)
- Mybatis 处理日期格式自动转换
- Rust : AES算法加密、解密
- MTK驱动代码流程介绍:
- Nexus3功能介绍
- 计算机鼠标游戏教学法,练习使用鼠标教案
- 如何找到自己正确需要的抖音搜索关键词
- 数据库基础(面试常见题)
- win10 休眠设置无效_windows10系统电脑点击睡眠没反应的解决方法
- 基于python高校学生管理系统
- 区块链软件开发公司 区块链的基本原理
- “一键GHOST”系统备份与恢复 一键GHOST使用方法 - 绿色软件联盟 - 绿色免费共享
- 微软旗下GitHub宣布裁员10%;谷歌高管警告:AI聊天机器人会产生错觉;华为称在ChatGPT领域早有布局丨每日大事件...
- Unity使用波函数坍缩 (Wave Collapse Function)算法生成随机地图
- 机器学习新手十大算法
- 输出100 - 200之间的素数C语言
热门文章
- centos单机部署greenplum
- 字节跳动暑期实习生一面面经 大三
- 【计算机视觉】摄像机标定与畸变校正
- Navicat、PDMan、DBeaver三者ER图比较
- python blp模型 估计_谁能简单解释一下经济学中的BLP模型?
- ASP.net创建Controller视图时报错(Exception has been thrown by the target of an Invocation.)
- Python基于AIML智能聊天机器人实战(4)- 机器人自学习能力集成
- SQL 登录注入脚本_深圳嘉华学校之SQL 注入
- 高等数学考研笔记(八)
- 彩云碧海蓝天Mac高清动态桌面壁纸