/etc/init.d/XX 스크립트에서 파생된 "서비스"와 systemd포장지이를 위해 생성됩니다. 어떤 런레벨에서도 자동으로 시작되지 않으며 실행할 때 어떤 목록에도 표시되지 않습니다 systemctl --all
.systemctl list-unit-files --all
내 직감은 종속성이 없고 아직 시작되지 않았기 때문에 systemd에 "로드"되지 않았으므로(따라서 활성화되지 않았거나 로드되지 않음) systemd가 이를 나열하지 않는다는 것입니다.
얻을 수 있는 방법이 있나요?가득한아직 시작되지 않았거나 자동으로 시작되지 않은 서비스를 포함하여 가능한 모든 서비스 목록이 있습니까? 아니면 systemctl search
그에 상응하는 일을 합니까?
이것은 관련이 있습니다질문시작 시 시도할 서비스 목록만 요청하세요.
이것man
페이지systemctl
"--all" 아래에 말하세요
시스템에 설치된 모든 장치를 나열하려면 list-unit-files 명령을 사용하십시오.
그러나 이러한 비활성화된 장치는 출력에 나타나지 않습니다 list-unit-files
.
답변1
글쎄, 나는 "시스템 사람들"에게 물었고 그들은 맨 페이지에 그렇게 나와 있음에도 불구하고 이전 버전에서는 이들 모두가 나열되지 않았다고 말했습니다.
-a, --all
When listing units, show all loaded units, regardless of their
state, including inactive units. When showing unit/job/manager
properties, show all properties regardless whether they are set or
not.
To list all units installed on the system, use the list-unit-files
command instead.
systemd 219
위에 나열된 대부분의 기능은 실제로 "내" 버전의 systemd (CentOS 6) 에서 구현되지 않는 것 같습니다 . 하지만 버전 1이 있는 Debian 9의 최신 systemctl 버전에서는 수정된 것 같습니다. systemd 232
아마도 그게 이유일 것입니다.
systemd
init.d 스크립트를 사용하는 경우 이전 버전(상태, 시작, 중지)처럼 제어할 수 있습니다.하다런레벨을 지정하지만 모든 디렉터리에 존재하지 않는 경우 /etc/rc?.d
(la chkconfig --del my_service
또는 그에 상응하는 항목 systemctl disable my_service
또는 chkconfig
처음에 실행되지 않은 경우) 이전 버전의 systemd에서는 systemd-sysv-generator
등을 실행해도 목록에 표시되지 않습니다. 중간] [2]. systemctl list-units --all
잘 작동하고 여전히 제어 가능하지만. 또는 정상적인 서비스이지만 비활성화된 경우 여전히 작동하지만 어떤 목록에도 나타나지 않는 것 같습니다.
인용하다: https://lists.freedesktop.org/archives/systemd-devel/2019-May/042555.html
답변2
실행 중이거나 활성 상태이거나 실패한 시스템에 로드된 모든 서비스를 나열합니다.
# sudo systemctl list-units --type=service --all
시스템에서 비활성화된 모든 서비스를 나열합니다.
# sudo systemctl list-unit-files --type=service --state=disabled
시스템에서 활성화된 모든 서비스를 나열합니다.
# sudo systemctl list-unit-files --type=service --state=enabled
시스템에 로드된 모든 활성 서비스를 나열합니다.
# sudo systemctl list-units --type=service --state=active
시스템에서 실행 중인 상태로 로드된 각 서비스를 나열합니다. 이건 내가 제일 좋아하는 명령이야
# sudo systemctl list-units --type=service --state=running
실패 상태인 시스템에 로드된 모든 서비스를 나열합니다.
# sudo systemctl list-units --type=service --state=failed
종료 상태에 있는 시스템에 로드된 모든 서비스를 나열합니다.
# sudo systemctl list-units --type=service --state=exited
답변3
이 명령을 루트로 실행하고 있습니까? 나는 list-unit-files 명령이 정확히 당신이 찾고 있는 것이라고 믿습니다. 로드된 서비스 목록뿐만 아니라 단위 파일도 나열됩니다. 서비스 구성 방식에 문제가 있다고 생각하고 계신 것 같습니다.
먼저 더미 서비스를 만들고 등록되었는지 확인하세요. 실제로 아무것도 하지 않는 것. 서비스가 작동하기 시작하면 작동하지 않는 서비스와 어떻게 다른지 확인할 수 있습니다. 또는 서비스 단위 파일을 실행 중인 간단한 서비스와 비교해 보세요.
답변4
다음을 위한 멋진 TUI systemctl
:
joehillen/sysz: systemctl용 fzf 터미널 UI
ㅏ후지브systemctl용 터미널 UI
설치하다:
wget -O ~/.bin/sysz https://github.com/joehillen/sysz/releases/latest/download/sysz
chmod +x ~/.bin/sysz
용법:sysz <other systemctl args as you wish>