systemctl은 가능한 모든 서비스(비활성화 포함)를 나열합니다.

systemctl은 가능한 모든 서비스(비활성화 포함)를 나열합니다.

/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아마도 그게 이유일 것입니다.

systemdinit.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>

관련 정보