호기심에 물어봅니다.
다음 명령은 로드된 모든 장치를 나열해야 합니다.
systemctl list-units --type service --all
그러나 실제로는 로드된 모든 서비스가 나열되지 않으며 활성화되거나 활성화된 서비스만 나열됩니다.
예를 들어:
[root@roman-centos system]# systemctl list-units --type service --all | grep httpd
[root@roman-centos system]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:httpd(8)
man:apachectl(8)
이것이 있어야 하는 방식입니까, 아니면 문서/코드 버그일 수 있습니까?
답변1
"로드됨"은 systemd가 디스크에서 메모리로 장치를 읽었음을 의미합니다. 이는 장치(예: 상태)를 "볼" 때마다, 장치가 시작될 때 또는 장치가 로드된 다른 장치에 종속될 때 발생합니다.
여기서 오해는 "systemctl status"가언제나systemd가 상태를 표시하기 위해 장치를 로드하기 때문에 장치를 "로드됨"으로 표시합니다. 다른 목적으로 장치가 더 이상 필요하지 않은 경우 해당 장치는 즉시 제거됩니다.
디스크에서 발견된 모든 가능한 유닛 목록을 표시하려면 "systemctl list-unit-files"를 사용하십시오.
답변2
권위 있는 문서 systemctl
는 Red Hat 문서가 아니지만 다음 man systemctl
과 같습니다.man systemctl
`--type service` should "limit the output to only services."
`--all` should "how all loaded units, regardless of their state, including inactive units. "
따라서 귀하가 제공하는 명령은 로드된 모든 항목을 나열해야 합니다.제공하다비활성 장치를 포함하여 상태에 관계없이 장치.
Ubuntu 16.04, 버전 229에서 테스트할 때 systemd
로드되었지만 비활성화된 장치가 출력에 보고되지 않는 문제를 재현했는데, 이는 문서화된 동작과 일치합니다.
이 동작은 문서와 일치하므로 이는 systemd의 버그인 것으로 보입니다. 나는 가지고있다systemd를 사용하여 오류 보고 열기이 문제에 대해.