Menu Close

17.2. 为选择可安全禁用的服务提供指导信息

如果系统的引导时间较长,您可以通过禁用引导时启用的一些服务来缩短这个时间。

要列出这些服务,请运行:

$ systemctl list-unit-files --state=enabled

要禁用某个服务,请运行:

# systemctl disable service_name

然而,某些服务必须启用才能确保操作系统安全,并使其可以正常工作。

您可以使用下面的表格来选择可安全禁用的服务。这个表格列出了在 Red Hat Enterprise Linux 最小安装中默认启用的所有服务。对于每个服务,它还显示是否可安全禁用这个服务。

表还提供有关可禁用该服务的情况的更多信息,或者您不应该禁用该服务的原因。

表 17.1. 在 RHEL 最小安装中默认启用的服务

服务名称它可用被禁用吗?更多信息

auditd.service

仅在不需要内核提供审核信息时禁用 auditd.service。请注意,如果禁用 auditd.service,则不会生成 /var/log/audit/audit.log 文件。因此,您无法追溯检查一些常见的动作或事件,如用户登录、服务启动或密码更改。还请注意 auditd 有两个部分:内核部分和服务本身。使用 systemctl disable auditd 命令,您只是禁用了该服务,而不是禁用内核的部分。要禁用系统审核,请在内核命令行中设置 audit=0

autovt@.service

这个服务只在真正需要时才运行,因此不需要禁用它。

crond.service

请注意,如果您禁用 crond.service,则不会运行 crontab 中的项目。

dbus-org.fedoraproject.FirewallD1.service

firewalld.service 的符号链接

dbus-org.freedesktop.NetworkManager.service

NetworkManager.service 的符号链接

dbus-org.freedesktop.nm-dispatcher.service

NetworkManager-dispatcher.service的符号链接

firewalld.service

仅在不需要防火墙时禁用 firewalld.service

getty@.service

这个服务只在真正需要时才运行,因此不需要禁用它。

import-state.service

仅在不需要从网络存储引导时才禁用 import-state.service

irqbalance.service

仅在只有一个 CPU 时禁用 irqbalance.service。不要在有多个 CPU 的系统中禁用 irqbalance.service

kdump.service

仅在不需要内核崩溃报告时禁用 kdump.service

loadmodules.service

除非 /etc/rc.modules/etc/sysconfig/modules 目录存在,否则该服务不会在最小 RHEL 安装中启动,否则不会启动该服务。

lvm2-monitor.service

仅在您不使用逻辑卷管理器(LVM)时禁用 lvm2-monitor.service

microcode.service

不要禁用该服务,因为它在 CPU 中提供了 microcode 软件的更新。

NetworkManager-dispatcher.service

只在不需要在网络配置更改时通知时才禁用 NetworkManager-dispatcher.service (例如在静态网络中)。

NetworkManager-wait-online.service

只有在引导后不需要工作网络连接时才禁用 NetworkManager-wait-online.service。如果启用该服务,则该系统不会在网络连接正常工作前完成引导。这可能会大大延长引导时间。

NetworkManager.service

仅在不需要连接到网络时禁用 NetworkManager.service

nis-domainname.service

仅在不使用网络信息服务(NIS)时禁用 nis-domainname.service

rhsmcertd.service

 

rngd.service

只在您的系统不需要很多熵或者没有任何硬件生成器时禁用 rngd.service。请注意,在需要大量好熵的环境中,比如用于生成 X.509 证书的系统(如 FreeIPA 服务器)中,该服务是必需的。

rsyslog.service

仅在不需要持久性日志,或把 systemd-journald 设置为持久性模式时,禁用 rsyslog.service

selinux-autorelabel-mark.service

仅在不使用 SELinux 时禁用 selinux-autorelabel-mark.service

sshd.service

仅在不需要 OpenSSH 服务器远程登录时禁用 sshd.service

sssd.service

仅在没有通过网络登录系统的用户(例如,使用 LDAP 或 Kerberos)时禁用 sssd.service。如果禁用了 sssd.service,红帽建议禁用所有 sssd-* 单元。

syslog.service

rsyslog.service 的别名

tuned.service

仅在需要使用性能调整时禁用 tuned.service

lvm2-lvmpolld.socket

仅在您不使用逻辑卷管理器(LVM)时禁用 lvm2-lvmpolld.socket

dnf-makecache.timer

仅在不需要自动更新软件包元数据时禁用 dnf-makecache.timer

unbound-anchor.timer

仅在不需要每日更新 DNS 安全扩展(DNSSEC)的根信任锚时禁用 unbound-anchor.timer。Unbound resolver 和 resolver 库使用这个根信任锚器进行 DNSSEC 验证。

要查找有关服务的更多信息,您可以运行以下命令之一:

$ systemctl cat <service_name>
$ systemctl help <service_name>

systemctl cat 命令提供位于 /usr/lib/systemd/system/<service> 下的服务文件的内容,以及所有适用的覆盖。可用的覆盖包括 /etc/systemd/system/<service> 文件中的单元文件覆盖,或者来自对应的 unit.type.d 目录中的单元文件覆盖。

有关置入文件的详情,请查看 systemd.unit man page。

systemctl help 命令显示特定服务的 man page。