systemctl을 사용하여 Linux 서비스를 나열하는 방법
게시 됨: 2022-10-23Linux 컴퓨터는 서비스 또는 데몬이라는 많은 백그라운드 작업에 의존합니다. 시스템 기반 배포판에는 어떤 서비스가 실행 중, 비활성화 또는 실패했는지 확인할 수 있는 내장 명령이 있습니다.
서비스 및 데몬
서비스와 데몬은 사용자 인터페이스 없이 실행되는 백그라운드 작업이며 사람의 개입이 필요하지 않으며 일반적으로 컴퓨터가 부팅될 때 시작됩니다.
한때 서비스는 init
에 의해 시작되었는데, 이는 가장 먼저 시작된 프로세스였습니다. 서비스의 세부 사항은 "/etc/init/d" 디렉토리에 있는 스크립트 모음에 보관되어 있습니다. 비 시스템 배포판에서는 여전히 그렇습니다.
systemd 세계에서 서비스는 이제 시작되는 첫 번째 프로세스인 systemd
에 의해 시작됩니다. 서비스의 세부 사항은 "/usr/lib/systemd" 디렉토리에 있는 단위 파일 에 저장됩니다.
매뉴얼 페이지에 따르면 systemd
는 시스템 및 서비스 관리자입니다. systemctl
명령을 사용하여 서비스 및 데몬을 포함하여 systemd 시스템의 다양한 측면을 검사하고 제어할 수 있습니다.
여기에서는 systemd 관련 명령을 살펴보고 있으므로 가장 먼저 알아야 할 것은 systemd 기반 배포를 실행 중인지 여부입니다.
관련: Linux의 systemd가 몇 년이 지난 후에도 여전히 분열적인 이유
초기화 또는 시스템 기반?
대부분의 Linux 배포판은 Arch, Red Hat, Debian을 포함한 systemd와 이들에서 파생된 많은 배포판을 사용합니다. 여기에는 Ubuntu 배포판 제품군, Fedora 및 해당 스핀, Manjaro 및 기타 Arch 기반 배포판이 포함됩니다.
그러나 systemd를 사용할 필요가 없도록 특별히 생성된 이러한 배포판의 포크 또는 특징이 있습니다. 뿐만 아니라 runit 또는 s6-linux-init와 같이 배포판에서 기본적으로 제공되는 시스템 대신 누군가가 사용하도록 선택할 수 있는 다른 초기화 시스템이 있습니다.
직접 설정하지 않은 Linux 컴퓨터를 관리해야 하는 경우 시스템이 사용 중인지 여부를 확인하는 유일한 방법은 확인하는 것입니다. pstree
명령으로 프로세스 트리를 보면 그렇게 할 수 있습니다. 우리는 트리의 맨 위만 볼 필요가 있습니다. 결국 실행되는 맨 처음 프로세스를 찾고 있으므로 head
명령을 통해 출력을 파이프하고 처음 5개 항목을 요청합니다.
프스트리 | 머리 -5
systemd
는 부팅 후 실행되는 첫 번째 프로세스이므로 Linux의 systemd 기반 설치에 있음을 알 수 있습니다.
관련: Linux 터미널에서 프로세스를 관리하는 방법: 알아야 할 10가지 명령
systemctl을 사용하여 서비스 나열
서비스 및 데몬을 나열하는 명령은 systemctl
입니다. type
및 state
옵션을 사용하여 systemctl
명령을 구체화할 수 있습니다. 우리는 systemctl
이 실행 상태에 있는 서비스에 대해 보고하도록 요청하고 있습니다.
systemctl --type=service --state=실행 중
정보 테이블이 생성됩니다. 터미널 창에 less
너무 넓거나 길면 기본 파일 뷰어에 표시되며, 이는 .
테이블의 오른쪽 끝을 보려면 오른쪽 화살표 키를 누르십시오. 일반 보기로 돌아가려면 왼쪽 화살표 키를 누릅니다.
Q 키를 눌러 less에서 종료합니다. 표시되는 열은 다음과 같습니다.
- 단위 : 서비스 또는 데몬의 이름입니다. 이 칼럼의 제목은 "Unit"입니다. 왜냐하면 이 칼럼에 있는 모든 것이 단위 파일에 있는 정보
systemd
를 사용하여 시작되었기 때문입니다. - 로드 : 서비스 또는 데몬의 로드 상태입니다. 로드, 찾을 수 없음, 잘못된 설정, 오류 또는 마스킹될 수 있습니다.
- 활성 : 서비스 또는 데몬이 있는 전체 상태입니다. 활성, 다시 로드, 비활성, 실패, 활성화 또는 비활성화일 수 있습니다.
- SUB : 서비스 또는 데몬의 하위 상태입니다. 작동 중지, 종료, 실패, 비활성 또는 실행 중일 수 있습니다.
- 설명 : 장치에 대한 간략한 설명입니다.
단일 서비스에 집중하려면 grep
을 통해 systemctl
의 출력을 파이프할 수 있습니다. 이 명령은 ssh
서비스에 대한 테이블 항목을 격리합니다.
systemctl --type=service --state=실행 중 | 그렙 SSH
지금까지 state=running
옵션을 제공하여 테이블의 내용을 필터링했습니다. 대신에 하위 상태의 가능한 값을 사용할 수 있습니다: dead, exited, failed, inactive, running.
실패한 서비스를 찾아보겠습니다.
systemctl --type=service --state=실패
하위 상태의 조합을 사용할 수 있습니다. 쉼표로 구분된 목록으로 입력합니다. 옵션 사이에 공백을 포함하지 않았는지 확인하십시오. 두 상태 중 하나와 일치하는 서비스를 찾습니다.
systemctl --type=service --state=실패, 종료
오른쪽 화살표 키를 눌러 오프스크린 열을 보면 목록에 종료된 서비스와 실패한 서비스가 혼합되어 있음을 알 수 있습니다.
기본적으로 systemctl
은 systemd
systemd
시작한 프로세스(서비스 및 데몬)를 나열합니다. 그렇기 때문에 이 모든 과정의 약칭이 "단위"입니다.
명시적으로 systemctl
에 단위를 나열하도록 요청하는 옵션이 있지만 기본 작업이므로 자주 사용되지 않습니다.
이러한 명령은 동일한 결과를 생성합니다.
sudo systemctl 목록 단위 --유형=서비스 --상태=실행 중
sudo systemctl --type=service --state=실행 중
systemctl을 사용하여 단위 파일 나열
list-unit-files
옵션을 포함하여 systemctl
명령의 범위를 확장할 수 있습니다. 이것은 시작된 서비스와 데몬에 대한 보고뿐만 아니라 컴퓨터에 설치된 모든 단위 파일 도 나열합니다.
systemctl 목록 단위 파일 --state=활성화
컬러 테이블이 표시됩니다.
state
옵션을 제거하면 필터링이 제거됩니다. 출력에는 상태에 관계없이 설치된 모든 단위 파일이 포함됩니다.
systemctl 목록 단위 파일
출력에는 이전 명령의 결과보다 더 많은 항목이 포함됩니다.
테스트 컴퓨터에서 결과 목록은 이전 명령의 출력보다 거의 4배 더 깁니다.
state
옵션을 사용하고 싶다면 앞에서 본 것처럼 여러 상태를 사용할 수 있습니다. 동일한 규칙이 적용됩니다. 옵션을 쉼표로 구분된 값으로 제공하고 공백을 포함하지 마십시오.
이 명령은 비활성화되었거나 실행에 실패한 모든 단위 파일을 나열합니다.
systemctl list-unit-files --state=활성화, 실패
상태 옵션으로 선택한 항목에 따라 필터링된 감소된 수의 결과가 표시됩니다.
하나의 서비스를 자세히 살펴보기
하나의 서비스나 데몬에 대한 내용이 관심을 불러일으키고 더 자세히 알아볼 가치가 있는 경우 systemctl 상태 옵션을 사용하여 자세히 볼 수 있습니다.
SSH 데몬인 sshd를 살펴보겠습니다. 상태 옵션과 서비스 또는 데몬의 이름을 사용하기만 하면 됩니다.
systemctl 상태 SSHD
이 소형 디스플레이에는 다음이 표시됩니다.
- 짧은 설명과 함께 서비스 이름입니다. 색상으로 구분된 점은 실행 중인지 여부를 보여줍니다. 녹색은 실행 중임을 의미하고 빨간색은 실행 중이지 않음을 의미합니다.
- 단위 파일의 경로를 포함하여 로드된 항목입니다.
- 얼마나 오랫동안 실행되었습니다.
- 설명서가
man
에 있는 곳입니다. - 실행 중인 인스턴스의 프로세스 ID입니다.
- 실행 중인 이 서비스의 동시 인스턴스 수입니다. 보통 이것은 하나일 것입니다.
- 얼마나 많은 메모리가 사용되고 있습니다.
- CPU 시간이 얼마나 소모되었는지.
- 서비스가 속한 제어 그룹입니다.
시스템 로그의 관련 항목도 표시됩니다. 일반적으로 서비스 시작과 같은 이벤트입니다. 올바르게 시작되지 않은 서비스나 데몬을 찾고 있는 경우 유용한 정보가 될 수 있습니다.
관련: journalctl을 사용하여 Linux 시스템 로그를 읽는 방법
자율 시스템
서비스와 데몬은 운영 체제의 많은 자동 작업을 제공하므로 매우 중요합니다. 그것은 그들의 건강도 중요하다는 것을 의미합니다.
서비스, 데몬 및 단위 파일에 대한 보기를 얻는 것은 쉽고 유익합니다. 서비스나 데몬이 시작을 거부하는 경우에도 유용한 문제 해결 단계입니다.
관련: Linux에서 "열린 파일이 너무 많습니다" 오류를 해결하는 방법