[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)该应用程序中有一个“党中央”接口 ...
随机推荐
- mac上遇到的错误sed command a expects followed by text
上简单的替换操作 sed -i 's/apple/mac/g' full-path-file 执行后报错,"sed: 1: command a expects \ followed by t ...
- 2019.12.10笔记——Spring Boot热部署的使用和实现自己的热部署(类加载器相关)
Spring Boot热部署 热部署的使用 引入依赖 <!-- spring boot热部署的依赖 --> <dependency> <groupId>org.sp ...
- [转]CLion 2019去掉灰色参数提示(parameters hints)
众所周知,clion是一个很好用的c plus plus IDE,刚装好的clion默认的设置多少有一些不符合口味的地方,在查看代码或者敲代码的时候看到如下这样的灰色提示,我是有点受不了的: 之前用的 ...
- PyScript 使用(1)
今天按照官方文档进行pyscript的调用,发现paths下总是出现问题,于是调试了一下,问题解决了: # data.py import numpy as np def make_x_and_y(n) ...
- CDS标准视图:功能位置信息 I_FunctionalLocationData
视图名称:I_FunctionalLocationData 视图类型:基础视图 视图代码: 点击查看代码 @EndUserText.label: 'Functional Location Data' ...
- DevOps 企业级 CI/CD 实战 —— 整合 GitLab+Jenkins+Harbor+Docker 实现代码全自动化流程管理
前言 随着 AI 人工智能.云计算.Docker.K8S 等容器技术等的发展,DevOps 得到了广泛的应用和推广,CI / CD ( 持续集成 / 持续部署 )等概念不断深化和完善.CI/CD 是现 ...
- nginx平台初探-4
模块开发高级篇(30%) 变量(80%) 综述 在Nginx中同一个请求需要在模块之间数据的传递或者说在配置文件里面使用模块动态的数据一般来说都是使用变量,比如在HTTP模块中导出了host/ ...
- spring boot配置mybatis-plus
一.maven配置 <mybatis-plus.version>3.2.0</mybatis-plus.version> <mysql-connector.version ...
- 5. Docker 本地镜像发布到阿里云
5. Docker 本地镜像发布到阿里云 @ 目录 5. Docker 本地镜像发布到阿里云 1. 本地镜像发布到阿里云流程 最后: 1. 本地镜像发布到阿里云流程 镜像的生成方法: 基于当前容器创建 ...
- IPMITool 工具使用详细教程
IPMITool 工具使用详细教程 一.IPMI 与 IPMITool 简介 1. IPMI 概述 智能平台管理接口(Intelligent Platform Management Interface ...