参考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服务的更多相关文章

  1. 如何编写一个Systemd Service(转)

    转自 https://segmentfault.com/a/1190000014740871 0x01 什么是Systemd Service Systemd 服务是一种以 .service 结尾的单元 ...

  2. 编写一个简单的Web Server

    编写一个简单的Web Server其实是轻而易举的.如果我们只是想托管一些HTML页面,我们可以这么实现: 在VS2013中创建一个C# 控制台程序 编写一个字符串扩展方法类,主要用于在URL中截取文 ...

  3. jmeter 建立一个网络服务的测试计划

    如何创建一个 测试计划 测试一个网络服务. 你会 创建5个用户发送请求到一页. 同时,你会告诉用户运行测试两次. 的总数 请求用户请求(5)x(1)x(重复2次)= 10 HTTP请求. 来 建立测试 ...

  4. 【JavaService】使用Java编写部署windows服务

    如果你玩windows系统,你对服务这个东西并不会陌生,服务可以帮我们做很多事情,在不影响用户正常工作的情况下,可以完成很多我们需要的需求. 众所周知,微软的visio studio内置的Servic ...

  5. 一个中断服务子程序ISR

    请看下面的程序(一个中断服务子程序ISR),请指出这段代码的错误.)[中国台湾某著名CPU生产公司2005年面试题] 答案:(1)ISR不能返回一个值.如果你不懂这个,那么是不会被雇用的.(2)ISR ...

  6. .NET Core RC2发布在即,我们试着用记事本编写一个ASP.NET Core RC2 MVC程序

    在.NET Core 1.0.0 RC2即将正式发布之际,我也应应景,针对RC2 Preview版本编写一个史上最简单的MVC应用.由于VS 2015目前尚不支持,VS Code的智能感知尚欠火候,所 ...

  7. 作业二:个人编程项目——编写一个能自动生成小学四则运算题目的程序

    1. 编写一个能自动生成小学四则运算题目的程序.(10分)   基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图.   本题发一篇随笔,内容包括: 题 ...

  8. 编写一个简单的C++程序

    编写一个简单的C++程序 每个C++程序都包含一个或多个函数(function),其中一个必须命名为main.操作系统通过调用main来运行C++程序.下面是一个非常简单的main函数,它什么也不干, ...

  9. 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 ...

  10. Java基础-接口中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,

    36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口 ...

随机推荐

  1. maven常见命令之 -pl -am -amd

    昨天maven的deploy任务需要只选择单个模块并且把它依赖的模块一起打包,第一时间便想到了-pl参数,然后就开始处理,但是因为之前只看了一下命令的介绍,竟然花了近半小时才完全跑通,故记录此文. 假 ...

  2. 痞子衡嵌入式:MCUXpresso for VS Code开发环境搭建及SDK工程导入

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso for VS Code开发环境搭建及SDK工程导入. MCUXpresso IDE(包括其前身 LPCXpress ...

  3. 为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?

    打开我们的命令行,输入 python ,我们会进入 python 的交互模式. 当我们想退出 python ,返回我们的 shell 时,你将如何退出? 如上,两个行之有效的方法是输入 exit() ...

  4. 【转载】hacker术语

    1.肉鸡 所谓"肉鸡"是一种很形象的比喻,比喻那些可以随意被我们控制的电脑,对方可以是WINDOWS系统,也可以是UNIX/LINUX系统,可以是普通的个人电脑,也可以是大型的服务 ...

  5. CDS标准视图:维护包数据 I_MaintenancePackageData

    视图名称:维护包数据 I_MaintenancePackageData 视图类型:基础 视图代码: 点击查看代码 @AbapCatalog.sqlViewName: 'IMAINTPCKGDATA' ...

  6. 阿里云-网络和CDN

    https://www.aliyun.com/product/network/network?spm=5176.24532587.J_3207526240.73.1ac66489MpvOtf

  7. python:公共操作

    运算符 公共方法 range """ 1 2 3 4 5 6 7 8 9 """ # 不包含 end# 如果不写开始,默认从零开始# 如果不 ...

  8. HTTP劫持

    HTTP劫持 想了解什么是HTTPS,要先知道什么是HTTP HTTP HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML文件,图片文件,查询结果等,一般基于B/S架构, ...

  9. obsidian双向链接 不可链接到其他文章的段落|片段 解决方案

    前言 今天发现obsidian只能链接到其他文章的标题,不能链接到片段 一个简单的语法体现事物的普遍联系!|Obsidian知识管理 #2 双向链接|高级玩家_锌一(Strik0r)_哔哩哔哩_bil ...

  10. 《HelloGitHub》第 106 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. github.com/521xueweihan/HelloG ...