是否有文件说明哪些服务是 enabled/disabled for systemctl?

Is there a file that states which services are enabled/disabled for systemctl?

上下文

我是 Linux 新手,我一直在探索 CentOs 7。

问题

我无法理解 Systemd 在哪里跟踪启用和禁用的服务。

您可以选择 httpd 作为示例。

在不使用 systemctl status httpd 的情况下,我在哪里可以查看 httpd 是否启用或禁用?在哪个文件中可以找到此信息?

我在 /lib/systemd/system/httpd.service 和 /etc/httpd/conf/httpd.conf 中搜索过,但没有找到类似 enabled=no.

的内容

systemd 不维护任何 "database" 禁用和启用的服务。 它只是使用目标目录中的 symlinks 来确定服务是否启用。例如。当您启用服务时,会在 /etc/systemd/system/ 目标子目录(通常是 multi-user.target.wants)中创建 symlink 到 systemd 单元文件。调用 systemctl disable ... 只是删除 symlink.

对于系统供应商提供的单元,这有点棘手,因为这些符号 link 不受您的控制(不确定 httpd 是否属于这种情况)。要禁用这些服务,必须在 /etc/systemd/system/... 中创建指向 /dev/null 的 symlink 命名为系统服务单元,以 "shadow" 在 [= 中的某处创建真正的服务 link 16=] 由 /etc/systemd... 中更高优先级的伪造 link。我不确定 bare systemctl disable <vendor-unit> 是否这样做。

enabledisable 的函数描述如下:https://www.freedesktop.org/software/systemd/man/systemctl.html#enable%20UNIT%E2%80%A6