Linux Simple Systemd Service Guide
Simple Systemd Service Guide
主题
- Systemd介绍
- Systemd基本操作
- 怎样编写_service_.service文件
- 怎样部署service
Systemd介绍
- Linux OS的系统和服务管理者
- 兼容SysV初始化脚本(init scripts)
- 提供如下功能特性:
- 系统启动时系统服务的并行启动
- Daemon程序的按需激活
- 支持系统状态快照(snapshots)
- 基于依赖的服务控制逻辑
- systemd取代RHL7的Upstart,作为默认的init系统
Systemd基本操作
启动服务
systemctl start name.service
停止服务
systemctl stop name.service
重启服务
systemctl restart name.service
重载配置
systemctl reload name.service
检查服务状态
systemctl status name.service
输出所有服务状态
systemctl list-units --type service --all
使能服务
systemctl enable name.service
禁止服务
systemctl disable name.service
列出所有服务并检查是否使能
systemctl list-unit-files --type service
怎样编写name.service文件
name.service文件组成
- [Unit]
- 包含一般的选项,不依赖于单元类型(unit type)
- 选项:提供单元描述,指定单元行为,设置对其他单元的依赖关系
- [unit type]
- 如果一个单元有特定的指令,则这些指令被组合在以单元类型命名的块下。
比如,service单元文件包含在[Service]块中。
- 如果一个单元有特定的指令,则这些指令被组合在以单元类型命名的块下。
- [Install]
- 包含systemctl enable和disable命令使用的单元安装信息
重要的[Unit]块选项
Description
单元有意义的描述信息,systemctl status命令输出中显示该文本信息。
Documentation
提供该单元的URI引用文件列表。
After
定义单元的启动顺序。该单元只在After指定的单元处于激活状态后才启动。
Before选择与After功能相反。
Requires
配置与其他单元的依赖关系。在Requires中的单元与该单元一起激活。
如果任何需要的单元启动失败,这个单元就不会被激活。
Wants
配置比Requires弱的依赖关系。
如果任何列出的单元没有成功启动,也不会影响该单元的激活。
建议用于建立定制单元依赖关系。
Conflicts
配置反向的依赖关系,即与Requires配置相反的依赖。
重要的[Service]块选项
Type
配置单元启动类型。影响ExecStart和其他相关选项的功能。
simple
默认选项。ExecStart启动的进程为服务的主进程。
forking
ExecStart启动的进程创建一个子进程作为服务的主进程。启动完成后父进程退出。
oneshot
与simple相似,但是在启动后续的单元之前进程退出。
dbus
与simple相似,但是仅在主进程得到D-bus名称之后才启动后续的单元。
notify
与simple相似,但是仅在通过sd_notify()函数发送通知消息后才启动后续的单元。
idle
与simple相似,但是直到所有job完成后,才真正执行服务的二进制程序,这避免与服务shell的状态输出信息混淆。ExecStart
当单元启动时,执行该选项指定的命令或脚本。
ExecStop
当单元停止时,执行该选项指定的命令或脚本。
ExecReload
当单元重装时,执行该选项指定的命令或脚本。
Restart
如果该选项使能,当服务进程退出时,服务重启。作为systemctl stop命令的异常处理。
RemainAfterExit
如果该选项设置为True,即使服务所有的进程退出,这个服务也被认为处于激活状态(active)。
默认是False。
当Type=oneshort配置时,这个选项有特殊的用处。
重要的[Install]块选项
Alias
提供单元的额外名称,以空格隔开。除了systemctl enable,大部分sytemctl命令可以使用别名带去真正的单元名称。
RequiredBy
依赖于该单元的其他单元列表。
当该单元使能时,RequiredBy中的单元就会生成依赖于该单元的Require依赖关系。WantedBy
弱依赖于该单元的其他单元列表。
当该单元使能时,WantedBy中的单元就会生成依赖于该单元的Want依赖关系。Also
指定和该单元一起安装或卸载的其他单元列表。
DefaultInstance
限定的实例化单元。即该选项指定了该单元使能的默认实例。
Limited to instantiated units, this option specifies the default instance for which the unit is enabled.
例子:自定义中断绑核服务
[Unit]
Description=Configure common_affinity service for system!
After=network.target
[Service]
Type=oneshot
ExecStart=/etc/init.d/common_affinity
ExecStop=/home/zxuss/affinity/superstop.sh
RemainAfterExit=True
[Install]
WantedBy=multi-user.target
怎样部署service
以自定义中断绑核服务为例子:
1.将name.service文件拷贝到/usr/lib/systemd/system/目录下
cp -f ${work_path}/common_affinity.service /usr/lib/systemd/system/
2.将服务启动脚本拷贝到/etc/init.d/目录,或者其他目录
cp -f ${work_path}/common_affinity /etc/init.d/
3.如果已经部署了name.service服务,则先禁止该服务,然后重新使能该服务
systemctl disable common_affinity.service
systemctl reenable common_affinity.service
4.如果没有部署过name.service服务,则直接使能name.service服务
systemctl enable common_affinity.service
参考文档:
Managing Services with systemd
systemd.service — Service unit configuration
How To Use Systemctl to Manage Systemd Services and Units
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利
Linux Simple Systemd Service Guide的更多相关文章
- .NET Worker Service 部署到 Linux 作为 Systemd Service 运行
上一篇文章我们了解了如何将.NET Worker Service 作为 Windows 服务运行,今天我接着介绍一下如何将 Worker Service 部署到 Linux 上,并作为 Systemd ...
- systemd.service 中文手册
版权声明 本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布. 无担保:本文译者不保证译文内容准确无误,亦不承担任何由于使用此文档所导致的损失. 自由使用:任何人都可以自 ...
- 如何编写一个Systemd Service(转)
转自 https://segmentfault.com/a/1190000014740871 0x01 什么是Systemd Service Systemd 服务是一种以 .service 结尾的单元 ...
- Systemd: Service File Examples
大多数Linux发行版使用 systemd作为系统服务管理工具. systemctl是systemd的主要命令,用于管理控制服务. 这篇文章中将介绍如何创建允许你使用systemctl命令的sysyt ...
- Linux之systemd服务配置及自动重启
layout: post title: Linux之systemd服务配置及自动重启 date: 2019-09-09 tags: linux --- Linux之systemd服务配置及自动重启 0 ...
- HTTPSQS(HTTP Simple Queue Service)消息队列
HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key ...
- systemd.service — 服务单元配置
转载:http://www.jinbuguo.com/systemd/systemd.service.html 名称 systemd.service - 服务单元配置 大纲 service.servi ...
- systemd service
Man page systemd.unit SYSTEMD.UNIT(5) systemd.unit SYSTEMD.UNIT(5) NAME systemd.unit - Unit configur ...
- CENTOS/RHEL 7 系统中设置SYSTEMD SERVICE的ULIMIT资源限制
遇到的问题: golang程序一直出现 too many open files的报错, 尽管对 /etc/security/limits.conf 做了设置, 对最大文件打开数,最大进程数做了调优. ...
随机推荐
- ArcEngine 调用GP里面的Merge工具
这两天,为ArcEngine中的Merge工具的调试伤头脑筋,明明很简单的事情,就是搞不掂儿.今天忽然想到是否是中文的关系,果然,把中文修改成英文成功了.真是快郁闷死了! public static ...
- Routemanage类方法详解
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Ref ...
- js中使用showModelDialog中下载文件的时候,闪一下后无法下载
在js中使用showModelDialog中下载文件的时候,会因为showModelDialog自动设置target为_self导致下载文件“只会闪一下”就消失掉 在吧target设置为_blank后 ...
- html5课件外包-----swf/AS2/AS3/fla/ppt课件如何转换为html5交互课件/动画
随着Adobe公司公布2020年将不再更新和维护flash,flash逐渐被html5取代,很多教育机构都在面临着如何将自己的flash交互课件产品转换到html5版本的问题,最近遇到非常多的客户一上 ...
- 使用密钥登录CentOS系统(基于密钥的认证)
在Window客户端有多种软件可以登陆ssh,比如putty,xshelll,secureCRT,我就以xshell为例设置使用公钥和私钥验证登陆服务器. 使用Xshell密钥认证机制远程登录Linu ...
- 关于栈、队列、优先队列的应用——UVa11995
这本来是上一篇博客里的内容,但不知道什么原因breakdown了……我就简单放上一道题好了 题意:这道题的题目是“猜猜数据结构”,题意就是给你一些输入输出数据,让你根据这些数据判断是什么数据结构.要猜 ...
- Windows下安装MySQL8
转自:https://blog.csdn.net/star_in_shy/article/details/82691330 感谢! 一.MySQL官网下载 (一)MySQL下载地址:https:// ...
- Winform 实现跨线程以及Timer
https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.process.exited?redirectedfrom=MSDN&am ...
- C#开发微信支付之企业向用户付款
1.企业付款的介绍 所谓企业付款指的是,在功能开放后诸如保险行业的客户理赔.退保.商品退款.发放征集活动奖金.抽奖互动等操作都可以通过企业付款完成.而此前,微信支付只能提供客户向企业单向付款. 商户如 ...
- 理解inode如何指向block
一个inode编号如何实现,指向n多个block块的呢? 本质: 第一步:在CentOS系统中目录/tmp下 touch {01..12} 个文件: 然后mkdir block目录 第二步:cd切换到 ...