上下文
我是Linux的新手,我一直在探索CentO 7。
问题
我很难理解Systemd在哪里跟踪启用和禁用的服务。
您可以选择httpd为例。
在哪里可以看到不使用systemctl状态httpd启用还是禁用了httpd?可以在哪个文件中找到此信息?
我在/lib/systemd/system/httpd.service以及/etc/httpd/conf/httpd.conf中进行了搜索,但是没有找到诸如enabled = no之类的内容。
答案 0 :(得分:1)
systemd不会维护已禁用和已启用服务的任何“数据库”。 它仅使用目标目录中的符号链接来确定是否启用了服务。例如。启用服务后,将在/etc/systemd/system/
目标子目录(通常为multi-user.target.wants
)中创建到systemd单元文件的符号链接。调用systemctl disable ...
只会删除该符号链接。
对于系统供应商装运的设备,由于这些符号链接不在您的控制之下(因此不确定httpd
是不是在您的控制之下),这会有些棘手。要禁用这些服务,必须在/dev/null
中创建一个指向/etc/systemd/system/...
的符号链接,该符号链接被称为系统服务单元,以通过{{ 1}}。我不确定/lib/systemd...
是否会这样做。
/etc/systemd...
和systemctl disable <vendor-unit>
的功能在这里描述:https://www.freedesktop.org/software/systemd/man/systemctl.html#enable%20UNIT%E2%80%A6