1. 什么是systemd service

systemd service是一种以 .service 结尾的配置文件,是一个专用于 Linux 操作系统的系统与服务管理器。简单来说,用于后台以守护精灵(daemon)的形式运行程序。
systemd 服务的内容主要分为三个部分,控制单元 [Unit] 的定义、服务 [Service] 的定义、以及 [Install] 安装部分。

2. 示例详解

[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    #表示多用户命令行状态

2.1 Unit字段

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

Description字段给出当前服务的简单描述。
Documentation字段给出文档位置。
After字段表示在什么服务之后启动。
Before字段表示在什么服务之前启动。
After和Before字段只涉及启动顺序,不涉及依赖关系。Wants字段表示该服务和某服务存在某种弱依赖关系,即某服务停止运行或退出不影响该服务继续运行。
Requires字段则表示”强依赖”关系,即某服务停止运行或退出,改服务也必须停止运行。
Wants字段与Requires字段只涉及依赖关系,与启动顺序无关,默认情况下是同时启动的。

2.2 Service字段

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

 Type字段:定义启动类型。它可以设置的值如下:- simple(默认值):ExecStart字段启动的进程为主进程- forking:ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程- oneshot:类似于simple,但只执行一次,Systemd 会等它执行完,才启动其他服务- dbus:类似于simple,但会等待 D-Bus 信号后启动- notify:类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务- idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混
 ExecStart字段:定义启动进程时执行的命令,就是手动启动时执行的命令。ExecReload字段:重启服务时执行的命令。ExecStop字段:停止服务时执行的命令。ExecStartPre字段:启动服务之前执行的命令。ExecStartPost字段:启动服务之后执行的命令。ExecStopPost字段:停止服务之后执行的命令。
 KillMode字段:定义 Systemd 如何停止 sshd 服务。它可以设置的值如下:-  control-group(默认值):当前控制组里面的所有子进程,都会被杀掉-  process:只杀主进程-  mixed:主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号-  none:没有进程会被杀掉,只是执行服务的 stop 命令
 Restart字段:定义了 sshd 退出后,Systemd 的重启方式。它可以设置的值如下:- no(默认值):退出后不会重启- on-success:只有正常退出时(退出状态码为0),才会重启- on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启- on-abnormal:只有被信号终止和超时,才会重启- on-abort:只有在收到没有捕捉到的信号终止时,才会重启- on-watchdog:超时退出,才会重启- always:不管是什么退出原因,总是重启对于守护进程,推荐设为on-failure。对于那些允许发生错误退出的服务,可以设为on-abnormal。
 RestartSec字段:表示 Systemd 重启服务之前,需要等待的秒数。
user字段可以设置服务的用户名
WorkingDirectory字段指定服务的安装目录

2.3 Install字段

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

 WantedBy字段:表示该服务所在的 Target。Target的含义是服务组,表示一组服务。WantedBy=multi-user.target指的是服务所在的Target是multi-user.targetSystemd 有默认的启动 Target。就是multi-user.target,在这个组里的所有服务,都将开机启动。查看 multi-user.target 包含的所有服务
systemctl list-dependencies multi-user.target

Linux中service文件详解相关推荐

  1. linux中fstab文件详解

    From:http://www.winu.cn/space-14160-do-blog-id-1105.html 我们在linux中常常用mount命令把硬盘分区或者光盘挂载到文件系统中./etc/f ...

  2. linux中inittab文件详解

    转载地址:http://www.2cto.com/os/201108/98426.html](http://www.2cto.com/os/201108/98426.html init的进程号是1(p ...

  3. linux passwd是什么文件,Linux中passwd文件详解

    Linux的用户信息很多都保存在这个/etc/passwd文件中,以前觉得这种配置文件挺难看懂的,但是静下心来瞅瞅其实也就一点东西,我们来一起看下. 文件样例root@myths-X450LD:/ho ...

  4. Linux中iptraf命令详解(IP局域网监控工具)

    2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03   作者:佚名    ...

  5. centos7之service文件详解及systemctl命令使用

    centos7之service文件详解及systemctl命令使用 1. systemed简介 systemd与init的区别及优势 systemd和init的区别 systemd对比init的优势 ...

  6. linux中mkdir命令含义,Linux中mkdir命令详解

    Linux中mkdir命令详解 linux mkdir用来创建目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1. 新建一个文件夹 one 2. 新建三个 ...

  7. Linux中etc目录详解

    Linux中etc目录详解 /etc目录 包含很多文件.许多网络配置文件也在/etc 中. /etc/rc   or/etc/rc.d   or/etc/rc*.d   启动.或改变运行级时运行的sc ...

  8. linux中dd命令详解,Linux中DD命令详解

    Linux中DD命令详解 1.dd命令简介 功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换.可以用该命令实现DOS下的diskcopy命令的作用.先用dd命令把软盘上的 ...

  9. linux语言的说明顺序有哪些,(linux常用头文件详解.doc

    (linux常用头文件详解 linux常用头文件详解 POSIX标准定义的头文件??????? 目录项 ???????? 文件控制 ??? 文件名匹配类型 ??? 路径名模式匹配类型 ??????? ...

最新文章

  1. 「要拼就拼运维」5分钟一台?它让我爱上工作了!
  2. 转MFC消息映射梳理
  3. 成功解决urllib.error.URLError urlopen error Errno 11004 getaddrinfo failed
  4. Java1.使用二分搜索算法查找任意N个有序数列中的指定元素。 2.通过上机实验进行算法实现。 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告。 4.至少使用两种方法进行编程,直接查
  5. ORACLE中科学计数法显示问题的解决
  6. android服务自动重启,安卓service关闭后怎么自动重启
  7. 深入浅出MFC文档/视图架构之文档模板
  8. 【转】构建微服务架构的最佳实践2/3
  9. 1.3编程基础之算术表达式与顺序执行 09 与圆相关的计算
  10. 基于JAVA+SpringMVC+MYSQL的在线音乐网站
  11. 72. 编辑距离(JavaScript)
  12. 学习python的日常7
  13. C++基础:C++的封装/继承/多态
  14. 第13讲++连接查询和子查询
  15. python中的变量的学习
  16. 数字图像处理学习路线
  17. Python调用华为API实现人脸检测
  18. 大疆御2电池数据查看教程
  19. 让校园生活更轻松的十大Android应用程序
  20. Tomcat-线程模型及设计精髓

热门文章

  1. 笔记 09-集合(HashSet HashMap TreeMap) 练习
  2. 使用validate注解做校验以及自定义validate注解
  3. 异步电机三相电流滞环矢量控制
  4. 交互式机器学习/ 强化学习在图像领域中的应用
  5. QCharts随时间流逝
  6. 亚马逊个人创业这条路行的通吗?
  7. 计算机在日常办公众的应用论文,计算机及应用基础专业论文.docx
  8. 什么是视距传播,如何验证微波链路视线
  9. 【GPT-4】立即停止训练比 GPT-4 更强的模型,至少六个月!马斯克、图灵奖得主等数千 AI 专家紧急呼吁
  10. 工程流体力学笔记暂记42 (收缩喷管中的流动)