[tldr] 如何给自己的程序编写一个systemd服务
配置文件
systemd使用配置文件作为程序服务启动的方式,分为可以自启动的和不能自启动的
就是
enable和start的命令的区别
- 分为
/etc/systemd/system和/usr/lib/systemd/system,使用其中的.service文件
服务信息解析
Loaded行:配置文件的位置,是否设为开机启动
Active行:表示正在运行
Main PID行:主进程ID
Status行:由应用本身(这里是 httpd )提供的软件当前状态
CGroup块:应用的所有子进程
日志块:应用的日志
写一个配置文件
打开.service文件即可开始编辑
- 一个配置文件使用的键值对的方式,使用
xxx=xxx
[Unit]区块
使用Description作为对服务的形容,Documentation字段给出文档位置
使用Before和After字段展示服务的启动顺序,表示自己的服务应该依赖什么(但是不是真实的依赖关系)
依赖关系分为Wants和Requires2个字段,分别是弱依赖和强依赖
[Service]区块
这里可以配置环境变量等服务的启动方式.
你可能会遇到EnvironmentFile环境参数配置文件,当然也可以不需要外部配置参数
这是.service配置文件的配置文件,在
/etc/sysconfig/目录下
ExecStart字段:定义启动进程时执行的命令。
ExecStart=/usr/sbin/sshd -D $OPTIONS存放的是如何启动服务的方式
KillMode字段:定义 Systemd 如何停止 sshd 服务。
默认是清除所有的进程
Restart字段定义是否重启服务
遇到错误的时候很有用,配合
RestartSec字段使用
最小实现
我们自己的项目添加systemd服务的支持的时候,添加一个最小最基本的服务
下面就是一个例子,可以通过简单修改之后作为自己的项目的systemd服务
[Unit]
Description=Github520cli auto update hosts config to access github
[Service]
Type=simple
ExecStart=/home/xuhe/go/bin/github520cli --auto
Restart=always
RestartSec=1
[Install]
WantedBy=multi-user.target
[tldr] 如何给自己的程序编写一个systemd服务的更多相关文章
- 如何编写一个Systemd Service(转)
转自 https://segmentfault.com/a/1190000014740871 0x01 什么是Systemd Service Systemd 服务是一种以 .service 结尾的单元 ...
- 编写一个简单的Web Server
编写一个简单的Web Server其实是轻而易举的.如果我们只是想托管一些HTML页面,我们可以这么实现: 在VS2013中创建一个C# 控制台程序 编写一个字符串扩展方法类,主要用于在URL中截取文 ...
- jmeter 建立一个网络服务的测试计划
如何创建一个 测试计划 测试一个网络服务. 你会 创建5个用户发送请求到一页. 同时,你会告诉用户运行测试两次. 的总数 请求用户请求(5)x(1)x(重复2次)= 10 HTTP请求. 来 建立测试 ...
- 【JavaService】使用Java编写部署windows服务
如果你玩windows系统,你对服务这个东西并不会陌生,服务可以帮我们做很多事情,在不影响用户正常工作的情况下,可以完成很多我们需要的需求. 众所周知,微软的visio studio内置的Servic ...
- 一个中断服务子程序ISR
请看下面的程序(一个中断服务子程序ISR),请指出这段代码的错误.)[中国台湾某著名CPU生产公司2005年面试题] 答案:(1)ISR不能返回一个值.如果你不懂这个,那么是不会被雇用的.(2)ISR ...
- .NET Core RC2发布在即,我们试着用记事本编写一个ASP.NET Core RC2 MVC程序
在.NET Core 1.0.0 RC2即将正式发布之际,我也应应景,针对RC2 Preview版本编写一个史上最简单的MVC应用.由于VS 2015目前尚不支持,VS Code的智能感知尚欠火候,所 ...
- 作业二:个人编程项目——编写一个能自动生成小学四则运算题目的程序
1. 编写一个能自动生成小学四则运算题目的程序.(10分) 基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图. 本题发一篇随笔,内容包括: 题 ...
- 编写一个简单的C++程序
编写一个简单的C++程序 每个C++程序都包含一个或多个函数(function),其中一个必须命名为main.操作系统通过调用main来运行C++程序.下面是一个非常简单的main函数,它什么也不干, ...
- 35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n
35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现in ...
- Java基础-接口中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,
36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口 ...
随机推荐
- LiquibaseException java.lang.ClassCastException: class java.time.LocalDateTime cannot be cast to class java.lang.String
https://forum.liquibase.org/t/liquibaseexception-java-lang-classcastexception-class-java-time-locald ...
- 龙哥量化:通达信的函数ma均线,ema、sma、dma的计算原理是什么,XMA是未来函数
注意均线也有未来函数,常见的是跨周期的用法,会导致信号闪烁, 不常见的是XMA这个未来函数太坑了, [代写公式,龙哥微信:Long622889] MA.EMA.SMA.DMA.TMA.WMA6种平均算 ...
- 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v8.1版已发布
关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级.高度提炼,一套API优雅支持UDP .TCP .WebSocket 三种协议,支持iOS.A ...
- Canal同步MySQL增量数据
引言 在现在的系统开发中,为了提高查询效率 , 以及搜索的精准度, 会大量的使用 redis .memcache 等 nosql 系统的数据库 , 以及 solr . elasticsearch 类似 ...
- 【译】在分析器中使用 Meter Histogram(直方图)解锁见解
您是否正在与应用程序中的性能瓶颈作斗争?不要再观望了!Visual Studio 2022 在其性能分析套件中引入了 Meter Histogram(直方图)功能,为您提供了前所未有的分析和可视化直方 ...
- 给DevOps加点料:融入安全性的DevSecOps
从前,安全防护只是特定团队的责任,在开发的最后阶段才会介入.当开发周期长达数月.甚至数年时,这样做没什么问题:但是现在,这种做法现在已经行不通了.采用 DevOps 可以有效推进快速频繁的开发周期(有 ...
- CDS标准视图:预期应收 I_FutureAccountsReceivables
视图名称:预期应收 视图类型:参数 视图代码: 点击查看代码 //Documentation about annotations can be found at http://help.sap.com ...
- 我的c语言笔记
1. 进制转换 二进制.八进制和十六进制向十进制转换都非常容易,就是"按权相加".如:1010.1101 = 1×23 + 0×22 + 1×21 + 0×20 + 1×2-1 + ...
- w3cschool-Jenkins中文文档
https://www.w3cschool.cn/jenkins/ Jenkins中文文档 阅读(1173.5k)收藏赞(54)分享 手册简介 Jenkins是一个开源的持续集成的服务器,Jenki ...
- obsidian双向链接 不可链接到其他文章的段落|片段 解决方案
前言 今天发现obsidian只能链接到其他文章的标题,不能链接到片段 一个简单的语法体现事物的普遍联系!|Obsidian知识管理 #2 双向链接|高级玩家_锌一(Strik0r)_哔哩哔哩_bil ...