Linux(入门基础):107---systemd服务的配置文件

一、systemd启动、运行时的相关配置文件

  • /usr/lib/systemd/system/目录:每个服务最主要的启动脚本设置,有点类似于init的/etc/init.d下面的文件
  • /run/systemd/system/目录:系统执行过程中所产生的服务脚本,这些脚本的优先级要比/usr/lib/systemd/system/高
  • /etc/systemd/system/目录:管理员根据主机系统的需要所建立的执行脚本,是一大堆链接文件,链接到/usr/lib/systemd/system/。其实这个目录有点像以前/etc/rc.d/rc5.d/Sxx之类的功能,执行优先级又比/run/systemd/system/高

操作系统启动会不会执行某些服务其实是看/etc/systemd/system/下面的设置,该目录下是一大堆链接文件,链接到/usr/lib/systemd/system/目录下的正确的执行脚本配置文件。因此实际执行的systemd启动脚本配置文件是放置到/usr/lib/systemd/system/下面。因此,如果你想要修改某个服务启动的设置,应该要去/usr/lib/systemd/system/下面修改才对(不过不建议修改这个目录,后面有文章会介绍)

Linux(入门基础):107---systemd服务的配置文件

二、/usr/lib/systemd/system/下的服务类型

  • systemd启动的服务都是存放在这个目录下,不同的服务类型有各自不同的文件后缀名。因此可以通过文件后缀名来区分服务类型
.service 一般服务类型。主要是:系统服务,包括服务器本身所需要的本地服务以及网络服务等,经常被使用到的服务大多是这种类型。所以也是最常用的类型
.socket

内部服务数据交换的socket服务:主要是IPC的传输信息socket文件功能。

这种类型的服务通常在监控信息传递的socket文件中,当通过此socket文件传递信息到链接服务时,就根据当时的状态将该用户的要求传送到对应的daemon,若daemon未启动,则启动该daemon后再传送用户的要求

使用sokcet类型的服务一般较少用到,因此在开机启动时通常会稍微延迟启动的时间(因此不怎么常用)。

一般用于本地服务比较多,例如我们的图形界面很多的软件都是通过socket来进行本机程序数据交换的操作(这与早期的xinted这个super daemon有部分的相似)

.target 执行环境类型:其实是一群unit的集合,例如multi-user.target其实就是一堆服务的集合。也就是说,选择执行multi-user.target其实就是执行一堆其他的.service或(及).socket之类的服务

.mount

.automount

文件系统挂载相关的服务:例如来自网络的自动挂载、NFS文件系统挂载等与文件系统相关性较高的进程管理
.path 检测特定文件或目录类型:某些服务需要检测某些特定的目录来提供队列服务,例如最常见的打印服务,就是通过检测打印队列目录来启动打印功能,这是就需要.path的服务类型来支持
.timer 循环执行的服务:这个服务有点类似anacrontab,不过由systemd主动提供,比anacrontab更加有弹性

Linux(入门基础):107---systemd服务的配置文件

三、其他配置文件

  • /etc/sysconfig/目录:几乎所有的服务都会将初始化的一些选项设置写入到这个目录。例如:mandb所要更新的man page索引中,需要加入的参数就写入到此目录下的man-db当中。网络服务的设置则写在/etc/sysconfig/network-scripts/这个目录内
  • /var/lib/目录:一些会产生数据的服务都会将它的数据写入到/var/lib/目录内。例如:数据库管理系统MariaDB的数据库默认就写入/var/lib/mysql/这个目录
  • /run/目录:放置了好多daemon的缓存,包括lock文件以及PID文件等