共计 2443 个字符,预计需要花费 7 分钟才能阅读完成。
Systemd 应用单元 (Units) 来管理系统服务和程序。零碎单元应用配置文件来管制其相干操作。单元配置文件有三种类型:默认单元配置文件,零碎特定的单元配置文件和运行时的单元配置文件。
上面列出了三种类型的单元配置文件所在门路:
默认单元配置文件 – /usr/lib/systemd/system
运行时的配置文件 – /run/systemd/system
零碎特定的配置文件 – /etc/systemd/system
默认单元配置文件,当装置新软件包时,在装置过程中,单元配置文件会在 /usr/lib/systemd/system 目录中生成。
运行时单元配置文件,别离在 units 启动和进行时,会主动生成和删除。
零碎特定的配置文件蕴含定制的单元配置。通过这些配置文件,用户能够笼罩 units 的默认行为。
当咱们对系统服务和程序的状态进行任何更改时,例如:start, stop, enable, 和 disable 时,systemd 读取并执行其单元配置文件。依照以下程序查看单元配置文件。
零碎特定的单元配置文件、运行时单元配置文件、默认单元配置文件。
例如,如果一个 units 配置文件在着三个门路上面都存在,则仅应用 零碎特定的配置文件 – /etc/systemd/system。
Unit 配置文件书写格局
一个单元配置文件蕴含管制该单元的所有必须信息,例如;启动 Units 文件的门路,在 Units 之前和之后须要启动的 service/units 的名称,文档、手册的地位,依赖项信息,抵触信息等。
Unit 配置文件中的信息通常分为三局部。[Unit],[Type], [Install]。
上面寻找一个 Unit 配置文件来解释:
[root@localhost ~]# cat /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.target
Wants=sshd-keygen.target
[Service]
Type=notify
EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config
EnvironmentFile=-/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
Centos7 中 Systemd 的 Unit 文件配置阐明 Centos7 中 Systemd 的 Unit 文件配置阐明
Unit 局部
该局部通常蕴含 形容、文档、与其余程序依赖的设置、包含在什么服务 之前 或者 之后 启动该 Units 的设置等。
Description: 该语句提供简要的形容。能够在 systemctl list-units 或者 systemctl status [Units]时看到形容。
Documentation: 该语句提供手册(帮忙文档)页面的地位以及拜访手册页面的命令。
After: 该语句列出了在该单元之后应激活的单元。仅仅是标准服务启动的程序,并没有强制要求启动。
Before: 该语句列出了在该单元之前应激活的单元。仅仅是标准服务启动的程序,并没有强制要求启动。
Wants: 定义该单元启动之后还须要启动哪些 unit。
Requires: 明确了定义该单元须要在哪个单元启动之前能力启动,如果后面的 unit 没有启动,那么该 unit 也不会被启动。
Conflicts: 该语句列出了在启动该单元之前必须进行的单元 / 服务。
一个单元的 After/Before 语句定义了该单元应该启动的程序。一个单元的 want/Requires 语句定义了该单元的依赖关系。
Type 局部
该局部示意 Unit 的类型。类型有 [Service],[Socket],[Timer],[Mount],[Path] 等类型,本文中应用的是 sshd.service 当例子,所以这边就应用 [Service] 类型来介绍。
上面列举罕用语句:
Type : 示意启动的类型,有以下几种类型:simple 为默认值、forking、oneshot 等类型。
EnvironmentFile: 能够有多个该语句、前面跟配置文件。
ExecStart: 前面接启动的语句
ExecStop: 前面接进行服务的语句
ExecReload: 前面接重启服务的语句
KillMode: 该语句如果是 process,当终止过程时,它会终止主程序。如果时 none 时,则不会关闭程序。
Install 局部
该局部时将此 Unit 装置到哪一个 target 中去。罕用会装置在 multi-user.target
WantedBy: 主动启动该 Unit 的 Target 名称。例如,如果在此语句中看到 multi-user.target,则意味着当零碎进入“multi-user.target”运行级别时,此 Unit 将主动启动。
能够看到,当执行 systemctl enable sshd.service 时,会将 sshd.service 从 /usr/lib/systemd/system 目录中创立超链接到 /etc/systemd/system/multi-user.target.wants 上面。
Centos7 中 Systemd 的 Unit 文件配置阐明 Centos7 中 Systemd 的 Unit 文件配置阐明
总结
Systemd 应用单元(Units) 来管理系统服务和程序。零碎单元应用配置文件来管制其相干操作。单元配置文件有三种类型:默认单元配置文件,零碎特定的单元配置文件和运行时的单元配置文件。