首页 > 系统相关 >配置自定义服务为linux系统服务

配置自定义服务为linux系统服务

时间:2023-10-19 09:55:06浏览次数:31  
标签:ExecStart 服务 service 自定义 deploy systemctl linux report

背景

使用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,重新运行,成功启动

 

标签:ExecStart,服务,service,自定义,deploy,systemctl,linux,report
From: https://www.cnblogs.com/yaoqingzhuan/p/17774020.html

相关文章

  • 两种方法,轻松完成 Telerik Reporting REST 服务和报表服务器的切换!
    TelerikReporting拥有直观、无代码的Win、网页与PDF报表的创建功能,直观的设计与具有特定风格的报表,无代码数据打包、向导、语法开发工具、自动操作。分类整理、过滤、有条件格式化、转化器格式,活动报表,水晶报表,附加报表。本文主要目的是展示在这两种呈现报表的方法(TelerikRepo......
  • 【JDK】自定义注释处理程序插件 AbstractProcessor
    1 前言最近比较好奇,Lombok、MapStruct里的注解,会在打包的时候会给我们的字节码文件里,写入一些东西甚至生成一些转换的字节码文件,不知道人家是如何做到的,所以抽空看了看,自己写了一个小Demo,来体验下。我们的目标就是引入自己的 AbstractProcessor的maven依赖包,然后能给我们生......
  • 【问题记录】自定义注解处理程序 AbstractProcessor,就是不生效,执行没效果
    1  前言最近在看注解处理程序,也想打包的时候,生成一点自己的东西,写了一个 AbstractProcessor,奶奶的花了两个早上,一直想不明白为什么不生效:唉,仅记录哈。......
  • 上游服务和下游服务
    上游服务和下游服务在网络通信中,数据流的方向确实通常是由上游到下游,因此,下游服务接收请求并发送响应,而上游服务发送请求并接收响应。感谢您的指正,对于了解和描述数据流的方向非常重要,而上游服务通常是请求的发起方,下游服务通常是响应的接收方。以nginx为例说一下浏览器发去......
  • linux应急处置
    实战手把手教你,Linux服务器应急处置教学小编 CyberTorres 2023-10-0914:48 发表于广东收录于合集#linux1个#服务器1个#技术分享2个当你负责的服务器被黑了,怎么办?没遭遇过如此大风大浪的运维人员:哦,**!我该怎么办,点根香烟冷静一下。Wait!小编请您先切断网络,再......
  • 你是否还迷茫要不要学习Linux?
    近几年Linux这个词好像很流行,无论是现实工作中,还是在网络信息中均可以听到或者看到有关Linux相关的内容,可以说Linux无处不在。说到这,有人可能会问了,我对Linux比较感兴趣,但是没有接触过Linux,对它不了解,不知道是否适合自己,是否值得我花费时间和经历去深入学习,因此陷入一种比较迷茫的......
  • [ Linux ] 手动放行端口
    https://www.cnblogs.com/yeungchie/在云服务商的网页端操作防火墙会不生效,不清楚原因。可以用下面的命令来手动放行端口。iptables-tnat-IPREROUTING-ptcp--dport$port-mstate--stateNEW-jACCEPTiptables-PFORWARDACCEPT......
  • linux 内核 ---信号量(semaphore)
    信号量使用说明(1)定义信号量structsemaphoresem;(2)初始化信号量voidsema_init(structsemaphore*sem,intval);该函数初始化信号量,并设置信号量sem的值为val。(3)获得信号量externvoiddown(structsemaphore*sem);externint__must_checkdown_interruptible(st......
  • 服务部署图绘制--Mermaid
    官网:https://mermaid.js.org/syntax/flowchart.html 例子:https://blog.csdn.net/weixin_55508765/article/details/125735923 npminstallmermaid <template><divclass="test-container"><h1>输入编辑流程图</h1><divcla......
  • 手机使用linux
    手机使用linux调查方法termux使用手机linux分析手机是mate40使用内置linux需要获取root,华为关闭root获取网站还要刷机,麒麟9000还加了很多锁使用termux不需要root,直接虚拟一个linux就是额外占用一个系统准备手机华为mate40:安装termux能上外网(服了,还......