Linux *.service文件详解
什么是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文件详解的更多相关文章
- Centos7之Systemd(Service文件)详解
一.开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件. 如果你想让该软件开机启动,就执行下面的命令(以httpd. ...
- Linux目录文件详解FHS标准(2013.09.05)
Linux 目录配置的依据FHS(Filesystem Hierarchy Standard)标准,将目录分成为四种交互作用的形态: 四种形态的具体解释: 可分享的:可以分享给其他系统挂载使用的目录, ...
- Linux 库文件详解
转自: http://www.cppblog.com/deane/articles/165216.html http://blog.sciencenet.cn/blog-1225851-904348. ...
- Linux 头文件详解
概览: 头文件目录中总共有32个.h头文件.其中主目录下有13个,asm子目录中有4个,Linux子目录中有10个,sys子目录中有5个. <a.out.h>:a.out头文件,定义了a. ...
- linux 查找目录或文件详解
查找目录:find /(查找范围) -name '查找关键字' -type d查找文件:find /(查找范围) -name 查找关键字 -print 如果需要更进一步的了解,可以参看Linux的命令 ...
- Linux中/proc目录下文件详解
转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...
- Linux /etc/profile文件详解
Linux /etc/profile文件详解 转载地址:http://linux.chinaitlab.com/administer/820910.html linux /etc/profile文 ...
- Linux下inittab文件详解
/etc/inittab文件详解 Linux系统的启动过程为:加电自检-->根据BIOS中的设置从指定的设备启动-->找到设备MBR中的bootloader引导启动系统-->启动ke ...
- 【转】linux中inittab文件详解
原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出, ...
- Linux中/proc目录下文件详解(转贴)
转载:http://www.sudu.cn/info/index.php?op=article&id=302529 Linux中/proc目录下文件详解(一) 声明:可以自由转载本文, ...
随机推荐
- MySQL 中的锁机制
介绍锁机制 技术是为了解决问题而生的,锁被用来实现隔离性,保证并发事务的正确性. 两段锁 & 一次封锁 两段锁 数据库遵循的是两段锁协议,将事务分成两个阶段,加锁阶段和解锁阶段(所以叫两段锁) ...
- 聊聊计算机之Intel CPU的MESI协议
1.on-chip概念 on-chip:每个CPU有好几个物理核,它们分布在CPU上,称为on-chip on-chip first cache:每个核内的一级缓存 on chip branch ta ...
- Elasticsearch: Join数据类型
在Elasticsearch中,Join可以让我们创建parent/child关系.Elasticsearch不是一个RDMS.通常join数据类型尽量不要使用,除非不得已.那么Elasticsear ...
- Elastic:使用Kafka部署Elastic Stack
- CentOS使用yum方式安装yarn和nodejs
# 使用epel-release.repo源安装的nodejs版本是6.17.1,有些前端项目使用的话会提示版本太低,具体下图 # 命令执行后的详细情况:curl -sL https://rpm.no ...
- 16. 综合使用tail、forward、copy和stdout
通过一个例子进行阶段总结. 本示例使用到如下插件:in_tail, out_copy, out_stdout, out_forward, in_forward. 本示例包含两个节点: node_for ...
- Git 便捷操作
虽然现在有很多图形化的 Git 工具,但是命令行依然 yyds.本文记录了工作中很有用的一些 Git 操作. 1.Fork出来的Git仓库同步代码 背景:有的时候从原仓库fork出了一个新仓库,这个新 ...
- 密码学奇妙之旅、02 混合加密系统、AES、RSA标准、Golang代码
CTR 计数器模式 计数器模式CTR是分组密码模式中的一种.通过将逐次累加的计数器进行加密来生成密钥流的流密码.每次加密时会生成一个不同的值来作为计数器的初始值. 可以事先进行加密.解密的准备. 加密 ...
- CSS基础-关于CSS注释的添加
在 CSS 中增加注释很简单,所有被放在/*和*/分隔符之间的文本信息都被称为注释. CSS 只有一种注释,不管是多行注释还是单行注释,都必须以/*开始.以*/结束,中间加入注释内容. 1.注释放在样 ...
- POJ2104 K-th number (整体二分)
刚学了整体二分,用这种解法来解决这道题. 首先对于每个询问时可以二分解决的,这也是可以使用整体二分的前提.将原来的序列看成是插入操作,和询问操作和在一起根据值域进行二分.用树状数组来检验二分值. 1 ...