注册
|
登录
发帖
热搜
活动
交友
discuz
论坛
BBS
翼度工具
翼度网址导航
开发工具
Linux命令速查
网页设计配色表
在线制作icon
颜色代码选取器
翼度科技
»
论坛
›
云主机
›
LINUX
›
查看内容
返回列表
发新帖
配置自定义服务为linux系统服务
李万根
李万根
当前离线
积分
21
7
主题
7
帖子
21
积分
新手上路
新手上路, 积分 21, 距离下一级还需 29 积分
新手上路, 积分 21, 距离下一级还需 29 积分
积分
21
发消息
显示全部楼层
背景
使用go语言写了一个测试环境部署上报的备份服务,以防因为主服务挂了影响部署操作。
想把这个 backup 服务设置了系统服务,如果因环境重启等异常,可以自动重启
使用的环境的Centos7
1、首先需要创建一个systemd unit存储配置文件
[Unit]
Description=deploy report backup servce
[Service]
Type=forking
ExecStart=/opt/deploy-report/deploy-report.sh start
#ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/opt/deploy-report/deploy-report.sh stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
复制代码
2、将上面配置放在指定目录下
RHEL系列service服务文件存放在/usr/lib/systemd/system目录
Debian系列service服务文件存放在/lib/systemd/system/目录下,这个目录有系统自带的服务文件和安装的软件包提供的服务文件
我的是Centos系统,所以放在了/usr/lib/systemd/system/deploy-report.service文件里面
3、加载配置文件
unit文件编写完成并放在指定目录下,需要执行systemctl daemon-reload命令重新加载配置文件,让系统知道有新的服务文件了
4、启动服务
systemctl start deploy-report.service
5、停止服务
systemctl stop deploy-report.service
6、开机自启动
systemctl enable deploy-report
在操作过程遇到的几个问题
1、启动卡死
在unit配置文件中的启动命令ExecStart刚开始是直接使用的执行go编译的二进制文件
ExecStart=/opt/deploy-report/deploy-report
复制代码
执行systemctl start deploy-report.service后发现一直卡在命令行无法退出,猜想是因为直接执行deploy-report启动是一个web服务,会一直处于listen状态,导致一直卡住
于是编写了一个启动脚本
ExecStart修改为 ExecStart=/opt/deploy-report/deploy-report.sh start
重新执行systemctl start deploy-report.service后发现报错,不卡了,直接执行脚本是可以运行的
2、启动失败status=203
通过下面命令查看报错情况 systemctl status deploy-report.service
status=203,网上一番搜索找到
于是在脚本上加上#!/bin/sh,重新运行,成功启动
来源:
https://www.cnblogs.com/yaoqingzhuan/p/17774020.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
上一篇:
使用 AutoSSH 实现自动化跨网络访问
下一篇:
Linux p7 运行级别
发表于 2023-10-19 12:41:14
举报
回复
使用道具
分享
返回列表
发新帖
本版积分规则
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
快速回复
快速回复
返回顶部
返回顶部
返回列表
返回列表