当前位置: 首页 > Linux

Centos系统中Systemd的单元文件配置说明

时间:2023-04-06 05:04:29 Linux

Systemd使用单元(Units)来管理系统服务和程序。系统单元使用配置文件来控制它们的相关操作。单元配置文件分为三种类型:默认单元配置文件、系统特定单元配置文件和运行时单元配置文件。下面列出了三种类型的单元配置文件:默认单元配置文件-/usr/lib/systemd/system运行时配置文件-/run/systemd/system系统特定配置文件-/etc/systemd/system是默认单元配置文件.安装新包时,安装过程中会在/usr/lib/systemd/system目录下生成单元配置文件。运行时单元配置文件分别在单元启动和停止时自动生成和删除。系统特定的配置文件包含定制的单元配置。通过这些配置文件,用户可以覆盖单元的默认行为。当我们对系统服务和程序的状态进行任何更改时,例如:启动、停止、启用和禁用,systemd会读取并执行其单元配置文件。按以下顺序检查单元配置文件。系统特定的单元配置文件、运行时单元配置文件、默认单元配置文件。例如,如果一个单元配置文件存在于所有三个路径下,则仅使用系统特定的配置文件-/etc/systemd/system。单元配置文件写入格式单元配置文件包含控制单元的所有必要信息,例如;Units文件的启动路径,Units前后需要启动的service/units的名称,文档所在位置,手册,依赖信息,冲突信息等。Unit配置文件中的信息通常是分为三个部分。[单位]、[类型]、[安装]。我们找一个Unit配置文件来解释一下:[root@localhost~]#cat/usr/lib/systemd/system/sshd.service[Unit]Description=OpenSSHserverdaemonDocumentation=man:sshd(8)man:sshd_config(5)After=network.targetsshd-keygen.targetWants=sshd-keygen.target[Service]Type=notifyEnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.configEnvironmentFile=-/etc/sysconfig/sshdExecStart=/usr/sbin/sshd-D$OPTIONS$CRYPTO_POLICYExecReload=/bin/kill-HUP$MAINPIDKillMode=processRestart=on-failureRestartSec=42s[Install]WantedBy=multi-user.targetCentos7InstructionsSystemd的Unit文件配置Centos7中的DescriptionUnit部分该部分通常包含描述、文档、依赖于其他程序的设置,包括设置启动Units之前或之后的服务等。Description:该语句提供了一个简短的描述。您可以在systemctllist-units或systemctlstatus[Units]中查看描述。文档:该语句提供了手册(帮助文档)页面的位置和访问手册页的命令。After:此语句列出应在该单元之后激活的单元。它只是规定了服务启动的顺序,并没有强制启动。Before:这个语句列出了应该在这个单元之前被激活的单元。它只是规定了服务启动的顺序,并没有强制启动。Wants:定义单元启动后需要启动哪些单元。Requires:在单元启动之前明确定义了需要启动哪个单元。如果前一个单元没有启动,则该单元将不会启动。冲突:此语句列出了在启动此单元之前必须停止的单元/服务。单元的After/Before语句定义单元开始的顺序。单元的want/Requires语句定义单元的依赖关系。类型部分这部分表示Unit的类型。类型包括[Service]、[Socket]、[Timer]、[Mount]、[Path]等类型。本文以sshd.service为例,所以这里使用[Service]类型来介绍。下面列出常用语句:Type:表示启动的类型,有以下几种类型:simple为默认值,forking,oneshot等类型。EnvironmentFile:这个语句可以有多个,后面是配置文件。ExecStart:后面是启动语句ExecStop:后面是停止服务的语句ExecReload:后面是重启服务的语句KillMode:如果语句是进程,当进程终止时,它会终止主程序。如果没有,程序将不会关闭。在Install部分,这个Unit将安装在哪个目标中?常用的会设置在multi-user.targetWantedBy:自动启动Unit的Target的名称。例如,如果你在这条语句中看到multi-user.target,则表示当系统进入“multi-user.target”运行级别时,该Unit将自动启动。可以看出,当执行systemctlenablesshd.service时,sshd.service会创建一个从/usr/lib/systemd/system目录到/etc/systemd/system/multi-user.target.wants的超链接。Centos7中Systemd的Unit文件配置说明Centos7中Systemd的Unit文件配置说明总结Systemd使用单元(Units)来管理系统服务和程序。系统单元使用配置文件来控制它们的相关操作。单元配置文件分为三种类型:默认单元配置文件、系统特定单元配置文件和运行时单元配置文件。