systemD 已加载与已启用单元状态

Rom*_*n_T 5 rhel systemd

出于好奇而提问。

\n\n

根据 RHEL7 系统管理指南 ( https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Services.html#sect-Managing_Services_with_systemd-Services-List )

\n\n

以下命令应列出所有已加载的单元

\n\n
systemctl list-units --type service --all\n
Run Code Online (Sandbox Code Playgroud)\n\n

但实际上它并没有列出所有加载的服务,只列出那些已启用或活动或(活动并启用)的服务。

\n\n

例如:

\n\n
[root@roman-centos system]# systemctl list-units --type service --all | grep httpd\n[root@roman-centos system]# systemctl status httpd\n\xe2\x97\x8f httpd.service - The Apache HTTP Server\n   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)\n   Active: inactive (dead)\n     Docs: man:httpd(8)\n           man:apachectl(8)\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是应该的方式还是可能是文档/代码错误?

\n

zby*_*zek 7

“已加载”意味着 systemd 已将单元从磁盘读取到内存中。每当您“查看”该单元(例如状态)、该单元启动时或该单元是另一个已加载单元的依赖项时,就会发生这种情况。

这里的误解是“systemctl status”将始终将单元显示为“已加载”,因为 systemd 加载单元以显示状态。如果该装置不再需要用于其他用途,则会立即卸载。

如果要显示磁盘上找到的所有可能单元的列表,请使用“systemctl list-unit-files”。