systemd

跳转到:导航搜索

systemd 是 openSUSE 使用的初始化系统和服务管理器。

systemd 程序是进程 ID 为 1 的进程。它负责以所需的方式初始化系统。systemd 直接由内核启动,并且抵抗信号 9,该信号通常会终止进程。所有其他程序要么由 systemd 直接启动,要么由其子进程之一启动。

Systemd 是 System V init 守护程序的替代品。systemd 与 System V init 完全兼容(通过支持 init 脚本)。systemd 的主要优点之一是它通过积极并行启动服务来大大加快启动时间。此外,systemd 仅在真正需要时才启动服务。守护程序不会在启动时无条件启动,而是在首次需要时启动。systemd 还支持内核控制组 (cgroups)、快照和恢复系统状态等。有关详细信息,请参阅 http://www.freedesktop.org/wiki/Software/systemd/

请参阅 openSUSE:Systemd_tipsopenSUSE systemd 文档

配置

所有 systemd 守护程序,包括 PID1,都可以调整其默认设置。配置这些各种守护程序的方式类似,并在相关手册页中描述。

例如,要获取 PID1 配置的详细说明,您可以参考 systemd-system.conf(5) 手册页。

主配置文件

每个 systemd 守护程序都带有主配置文件。

默认配置文件反映了编译期间建立的设置,位于 /usr/lib/systemd/ 中。

管理员可以通过在 /etc/ 中创建自己的版本来覆盖它们。但是,不建议这样做,因为主配置文件始终具有较低的优先级,无论这些 drop-in 是由管理员(在 /etc/ 中)创建的还是由软件包(在 /usr/ 中)提供的。

因此,建议使用 /etc/systemd/*.conf.d/ 中的 drop-in 配置片段来自定义配置。

Drop-in 片段

Drop-in 是具有更高优先级的主配置文件的配置片段。它们通常存储在 /etc/systemd/*.conf.d/ 中,用于由系统管理员创建的 drop-in,或安装在 /usr/lib/systemd/*.conf.d/ 中,用于当下游需要自定义配置的特定部分时由软件包安装。

例如,如果系统管理员希望默认情况下禁用 systemd-journald 强制执行的速率限制,他可以运行以下命令

   $ mkdir /etc/systemd/journald.conf.d
   $ cat >/etc/systemd/journald.conf.d/60-rate-limit.conf<<EOF
   # Disable rate limiting
   RateLimitIntervalSec=0
   EOF
   $ systemctl restart systemd-journald

获取配置概览

由于 systemd 组件的配置可能分散在不同的位置,因此获取全局概览可能很棘手。

幸运的是,可以使用 systemd-analyze cat-config 来检查一个 systemd 组件的配置。例如,要检查影响 systemd-journald 的配置文件,可以执行

   $ systemd-analyze cat-config systemd/journald.conf

有关更多示例,请参阅 systemd-analyze(1) 手册页。

避免 Drop-in 冲突

为了避免下游发行的 drop-in 与用户创建的 drop-in 之间的冲突,建议在这些子目录中的所有文件名之前加上一个两位数和一个破折号,例如 60-rate-limit.conf

此外,通过使用前缀数字 >= 60,可以保证用户的 drop-in 片段不会被下游发行的 drop-in 覆盖。或者说,可用用户范围是 [60-90],而范围 [0-49] 则保留给软件包 drop-in。

请注意,相同的推理也适用于覆盖(部分)单元文件时。在这种情况下,只有 drop-in 子目录的名称不同,请参阅 systemd.unit(5) 手册页。对于单元,应使用 systemctl cat 代替 systemd-analyze cat-config