什么是systemd service?

systemd service是一种以.service 结尾的配置文件,是一个专用于Linux操作系统的系统与服务管理器。简单来说,用于后台以守护精灵(daemon)的形式运行程序。

systemd服务的内容主要分为三个部分,控制单元[Unit]的定义、服务[Service]的定义、以及[Install]安装部分。

示例详解

[Unit]

Description=httpd        #当前配置文件的描述信息

After=network.target     #表示当前服务是在那个服务后面启动,一般定义为网络服务启动后启动

[Service]

Type=forking             #定义启动类型

ExecStart=/usr/local/apache/bin/apachectl start     #定义启动进程时执行的命令

ExecReload=/usr/local/apache/bin/apachectl restart  #重启服务时执行的命令

ExecStop=/usr/local/apache/bin/apachectl stop       #定义关闭进程时执行的命令

PrivateTmp=true                                     #是否分配独立空间

[Install]

WantedBy=multi-user.target    #表示多用户命令行状态

字段详解

[Unit]字段

这个字段主要给出服务描述、启动顺序和依赖关系。

字段说明

·         Description:给出当前服务的简单描述。

·         Documentation:给出文档位置。

·         After:表示在什么服务之后启动。

·         Before:表示在什么服务之前启动。

·         Wants:表示该服务和某服务存在某种弱依赖关系,即某服务停止运行或退出不影响该服务继续运行。

·         Requires:则表示”强依赖”关系,即某服务停止运行或退出,改服务也必须停止运行。

After和Before只涉及启动顺序,不涉及依赖关系。

Wants与Requires只涉及依赖关系,与启动顺序无关,默认情况下是同时启动的。

[Server]字段

这个字段主要给出服务的启动行为,如何启动、重启、停止。

字段说明

·         Type:定义启动类型。它可以设置的值如下:

o    simple(默认值):ExecStart字段启动的进程为主进程。

o    forking:ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程。

o    oneshot:类似于simple,但只执行一次,Systemd会等它执行完,才启动其他服务。

o    dbus:类似于simple,但会等待D-Bus信号后启动。

o    notify:类似于simple,启动结束后会发出通知信号,然后Systemd再启动其他服务。

o    idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混。

·         ExecStart:定义启动进程时执行的命令,就是手动启动时执行的命令。

·         ExecReload:重启服务时执行的命令。

·         ExecStop:停止服务时执行的命令。

·         ExecStartPre:启动服务之前执行的命令。

·         ExecStartPost:启动服务之后执行的命令。

·         ExecStopPost:停止服务之后执行的命令。

·         KillMode:定义Systemd如何停止sshd服务。它可以设置的值如下:

o    control-group(默认值):当前控制组里面的所有子进程,都会被杀掉。

o    process:只杀主进程。

o    mixed:主进程将收到SIGTERM信号,子进程收到SIGKILL信号。

o    none:没有进程会被杀掉,只是执行服务的stop命令。

·         Restart:定义了sshd退出后,Systemd的重启方式。它可以设置的值如下:
对于守护进程,推荐设为on-failure。对于那些允许发生错误退出的服务,可以设为on-abnormal。

o    no(默认值):退出后不会重启。

o    on-success:只有正常退出时(退出状态码为0),才会重启。

o    on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启。

o    on-abnormal:只有被信号终止和超时,才会重启。

o    on-abort:只有在收到没有捕捉到的信号终止时,才会重启。

o    on-watchdog:超时退出,才会重启。

o    always:不管是什么退出原因,总是重启。

·         RestartSec:表示Systemd重启服务之前,需要等待的秒数。

·         user:可以设置服务的用户名。

·         WorkingDirectory:指定服务的安装目录。

[Install]字段

该字段定义如何安装这个配置文件,即怎样做到开机自启。

字段说明:

·         WantedBy:表示该服务所在的Target。

Target的含义是服务组,表示一组服务。WantedBy=multi-user.target指的是服务所在的Target是multi-user.target

Systemd有默认的启动Target。就是multi-user.target,在这个组里的所有服务,都将开机启动。

查看multi-user.target包含的所有服务:

systemctl list-dependencies multi-user.target

Linux *.service文件详解的更多相关文章

  1. Centos7之Systemd(Service文件)详解

    一.开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件. 如果你想让该软件开机启动,就执行下面的命令(以httpd. ...

  2. Linux目录文件详解FHS标准(2013.09.05)

    Linux 目录配置的依据FHS(Filesystem Hierarchy Standard)标准,将目录分成为四种交互作用的形态: 四种形态的具体解释: 可分享的:可以分享给其他系统挂载使用的目录, ...

  3. Linux 库文件详解

    转自: http://www.cppblog.com/deane/articles/165216.html http://blog.sciencenet.cn/blog-1225851-904348. ...

  4. Linux 头文件详解

    概览: 头文件目录中总共有32个.h头文件.其中主目录下有13个,asm子目录中有4个,Linux子目录中有10个,sys子目录中有5个. <a.out.h>:a.out头文件,定义了a. ...

  5. linux 查找目录或文件详解

    查找目录:find /(查找范围) -name '查找关键字' -type d查找文件:find /(查找范围) -name 查找关键字 -print 如果需要更进一步的了解,可以参看Linux的命令 ...

  6. Linux中/proc目录下文件详解

    转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...

  7. Linux /etc/profile文件详解

    Linux /etc/profile文件详解   转载地址:http://linux.chinaitlab.com/administer/820910.html linux /etc/profile文 ...

  8. Linux下inittab文件详解

    /etc/inittab文件详解 Linux系统的启动过程为:加电自检-->根据BIOS中的设置从指定的设备启动-->找到设备MBR中的bootloader引导启动系统-->启动ke ...

  9. 【转】linux中inittab文件详解

    原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出, ...

  10. Linux中/proc目录下文件详解(转贴)

      转载:http://www.sudu.cn/info/index.php?op=article&id=302529   Linux中/proc目录下文件详解(一) 声明:可以自由转载本文, ...

随机推荐

  1. Paperask一键获取A币

    又到了毕业季,查论文是一件很头疼的事情,网上免费查重检测力度又很一般┑( ̄Д  ̄)┍ 因为一次偶然同学推荐了解到这个网站,只要做新手任务就能得到很多积分,再进行抽奖就可以得到A币或者是至尊券可以免费使 ...

  2. JS中如何删除某个父元素下的所有子元素?

    JS中如何删除某个父元素下的所有子元素?这里我介绍几种方法: 1.通过元素的 innerHTML 属性来删除 这种方式我觉得是最有方便的,直接找到你想要的父元素,直接令其 element.innerH ...

  3. 基于.NET6的简单三层管理系统

    前言 笔者前段时间搬砖的时候,有了一个偷懒的想法:如果开发的时候,简单的CURD可以由代码生成器完成,相应的实体.服务都不需要再做额外的注册,这样开发人员可以省了很多事. 于是就开了这个项目,期望实现 ...

  4. Vue3 封装 Element Plus Menu 无限级菜单组件

    本文分别使用 SFC(模板方式)和 tsx 方式对 Element Plus el-menu 组件进行二次封装,实现配置化的菜单,有了配置化的菜单,后续便可以根据路由动态渲染菜单. 1 数据结构定义 ...

  5. 【java8新特性】01:函数式编程及Lambda入门

    我们首先需要先了解什么是函数式编程.函数式编程是一种结构化编程范式.类似于数学函数.它关注的重点在于数据操作.或者说它所提倡的思想是做什么,而不是如何去做. 自Jdk8中开始.它也支持函数式编程.函数 ...

  6. Unity接入微信支付SDK 2022年版安卓篇

    最近1年转了UE开发,博客更新的比较少,技术栈宽了不少,以后有空尽量多更新,也方便总结记忆 Unity接入微信支付整个过程坑比较多,网上之前的教程要么比较老,要么比较零碎,只能东拼西凑摸索,跑通后还是 ...

  7. CentOS7下的lvm(逻辑卷)在线扩容

    扩展前该lvm分区为14GB 关闭系统,给sdb硬盘扩展6GB,然后重新进入CentOS.(或者是原有磁盘还有剩余未使用的空间) 对sdb进行分区: [root@converter ~]# fdisk ...

  8. Kibana使用仪表盘汇总数据(Dashboard)

    仪表板可用于集中管理和分享可视化控件集合.构建一个仪表板用以包含您在本教程中已保存的可视化控件,方法如下: 1.在侧边导航栏点击 Dashboard . 2.点击 Add 显示已保存的可视化控件列表. ...

  9. 基于SqlSugar的开发框架循序渐进介绍(14)-- 基于Vue3+TypeScript的全局对象的注入和使用

    刚完成一些前端项目的开发,腾出精力来总结一些前端开发的技术点,以及继续完善基于SqlSugar的开发框架循序渐进介绍的系列文章,本篇随笔主要介绍一下基于Vue3+TypeScript的全局对象的注入和 ...

  10. VMware安装Win11+WSA子系统和使用教程

    VMware安装Win11+WSA子系统和使用教程 作者:Sna1lGo 时间:2022/9/29 下载相关文件: Win11镜像:Download Windows 11 (microsoft.com ...