[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)该应用程序中有一个“党中央”接口 ...
随机推荐
- apache kylin的一些注意事项(解决kylin报错Storage schema reading not supported)
1.目前我所使用的kylin版本为2.6.2,有时在完成一次构建后会出现fail to locate kylin.properties的异常,如图所示 经排查,定位到kylin源码中的 org.apa ...
- Chaincode installation on peer0.org1 has failed
v1.4 版本执行 ./byfn.sh up时,报如下错误 Error: error getting chaincode deployment spec for mycc: error getting ...
- Windows 10 下编译 64 位 OpenJDK 8 并单步调试
Windows 10 下编译 64 位 OpenJDK 8 软件版本 操作系统:Windows 10 Cygwin:3.5.4-1 Visual Studio:2010 英文版 freetype: 2 ...
- Unity 3D更换默认脚本编辑器VisualStudio
由于VisualStudio 30天试用到期了,所有不能编辑Unity 3D脚本.需要更换成Notepad++ 打开Unity 3D顶部菜单 点击编辑(Editor)->Preferences- ...
- Qt编写安防视频监控系统58-子模块2窗口信息
一.前言 窗口信息一般用来打印输出文字信息,带时间,有些用户场景可能除了时间和内容以外,还需要其他的字段信息,可以自行在代码中增加字段即可,窗口信息一般以表格样式居多,上面是字段标题,下面是一行行的输 ...
- Qt编写安防视频监控系统52-颜色配置
一.前言 在系统打印日志或者窗口信息栏中,各种临时打印信息都显示在这里,很多时候我们还需要对特定的类别的信息突出颜色显示,比如告警信息,甚至对不同的告警级别的信息还可以分别不同的颜色显示,这样看起来会 ...
- Linux 下挂载群晖 NAS 硬盘拓展空间(NFS)
在群晖 NAS 上配置 开启 NFS 服务 打开群晖的 设置 - 文件服务 - NFS,把 NFS 服务勾选上,协议选最新即可. 配置文件夹的 NFS 权限 在 设置 - 共享文件夹 下,选择需要开启 ...
- [转]【Qt-license】误操作qt下载导致只能安装商业版试用十天,无法安装社区版
背景:原本是为了学习qml,需要下载一个design studio,而这个需要比较新版的安装程序,但新版的安装程序官方都是online安装.于是从官网找下载链接.毕竟是英文的,又心急,误打误撞中我选择 ...
- JS-正则表达式(基本语法、test、exec、\d\D\w\W\s\S .)
二,正则表达式 1,什么是正则表达式 是一种规范,对字符串格式进行验证的规范 不用自己写,常用的正则表达式,网上都有,只要会使用就可以 2,定义方法 字面量 var reg = /正则表达式/ 常用方 ...
- 网络编程懒人入门(十三):一泡尿的时间,快速搞懂TCP和UDP的区别
本文引用了作者Fundebug的"一文搞懂TCP与UDP的区别"一文的内容,感谢无私分享. 1.引言 网络协议是每个搞网络通信应用开发(比如IM.推送.网关等等)的程序员都必须要掌 ...