systemctl을 사용하여 Linux 서비스를 나열하는 방법

0
213

systemctl을 사용하여 Linux 서비스를 나열하는 방법
Fatmawati achmad zaenuri/Shutterstock.com
systemd가 있는 Linux 시스템에서 실행 중인 모든 서비스를 보려면 “systemctl –type=service –state=running” 명령을 사용하십시오. 그러면 각 활성 서비스의 이름, 로드, 하위 상태 및 설명이 표시됩니다. 상태 값을 변경하여 사용 불능, 종료, 실패 또는 비활성 서비스를 볼 수도 있습니다.

Linux 컴퓨터는 서비스 또는 데몬이라는 많은 백그라운드 작업에 의존합니다. 시스템 기반 배포판에는 어떤 서비스가 실행 중, 비활성화 또는 실패했는지 확인할 수 있는 내장 명령이 있습니다.

서비스 및 데몬

서비스와 데몬은 사용자 인터페이스 없이 실행되는 백그라운드 작업이며 사람의 개입이 필요하지 않으며 일반적으로 컴퓨터가 부팅될 때 시작됩니다.

한 번에 서비스를 시작했습니다. init, 이것은 출시된 최초의 프로세스였습니다. 서비스의 세부 사항은 “/etc/init/d” 디렉토리에 있는 스크립트 모음에 보관되어 있습니다. 비 시스템 배포판에서는 여전히 그렇습니다.

시스템화된 세계에서 서비스는 다음과 같이 시작됩니다. 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와 같이 배포판에서 기본적으로 제공되는 시스템 대신 누군가가 사용하도록 선택할 수 있는 다른 초기화 시스템이 있습니다.

systemd로 시작 시 Linux 프로그램을 실행하는 방법

관련된systemd로 시작 시 Linux 프로그램을 실행하는 방법

직접 설정하지 않은 Linux 컴퓨터를 관리해야 하는 경우 systemd를 사용하는지 여부를 확인하는 유일한 방법은 확인하는 것입니다. 프로세스 트리를 보고 이를 수행할 수 있습니다. pstree 명령. 우리는 트리의 맨 위만 볼 필요가 있습니다. 결국 실행되는 맨 처음 프로세스를 찾고 있기 때문에 출력을 다음을 통해 파이프할 것입니다. head 명령을 실행하고 처음 5개 항목을 요청합니다.

pstree | head -5

헤드를 통해 파이프된 pstree를 사용하여 Linux 설치에서 systemd를 사용 중인지 확인

우리는 그것을 볼 수 있습니다 systemd 부팅 후 실행되는 첫 번째 프로세스이므로 Linux의 시스템 기반 설치가 확실합니다.

관련된: Linux 터미널에서 프로세스를 관리하는 방법: 알아야 할 10가지 명령

systemctl을 사용하여 서비스 나열

서비스 및 데몬을 나열하는 명령은 다음과 같습니다. systemctl. 우리는 정제할 수 있습니다 systemctl 명령 type 그리고 state 옵션. 우리는 묻는다 systemctl 실행 상태에 있는 서비스에 대해 보고합니다.

systemctl --type=service --state=running

systemctl을 사용하여 실행 중인 서비스 나열

정보 테이블이 생성됩니다. 터미널 창에 비해 너무 넓거나 길면 기본 파일 뷰어에 표시됩니다. less.

적은 파일 뷰어에 표시되는 systemctl 호출의 출력

테이블의 오른쪽 끝을 보려면 오른쪽 화살표 키를 누르십시오. 일반 보기로 돌아가려면 왼쪽 화살표 키를 누릅니다.

적은 파일 뷰어에 표시되는 systemctl 호출의 출력 오른쪽 섹션

Q 키를 눌러 less에서 종료합니다. 표시되는 열은 다음과 같습니다.

  • 단위: 서비스 또는 데몬의 이름입니다. 이 열에 있는 모든 항목이 정보를 사용하여 시작되었기 때문에 열 제목이 “단위”입니다. systemd 단위 파일에서 찾을 수 있습니다.
  • : 서비스 또는 데몬의 로드 상태입니다. 로드, 찾을 수 없음, 잘못된 설정, 오류 또는 마스킹될 수 있습니다.
  • 활동적인: 서비스 또는 데몬이 있는 전체 상태입니다. 활성, 다시 로드, 비활성, 실패, 활성화 또는 비활성화일 수 있습니다.
  • 보결: 서비스 또는 데몬의 하위 상태입니다. 작동 중지, 종료, 실패, 비활성 또는 실행 중일 수 있습니다.
  • 설명: 장치에 대한 간략한 설명입니다.

우리는 출력을 파이프 할 수 있습니다 systemctl ~을 통해 grep 단일 서비스에 집중하고 싶다면 이 명령은 ssh 서비스.

systemctl --type=service --state=running | grep ssh

grep을 사용하여 결과에서 단일 서비스 분리

지금까지 우리는 다음을 제공하여 테이블의 내용을 필터링했습니다. state=running 옵션. 대신에 하위 상태의 가능한 값을 사용할 수 있습니다: dead, exited, failed, inactive, running.

실패한 서비스를 찾아보겠습니다.

systemctl --type=service --state=failed

systemctl로 실패한 서비스 보고

하위 상태의 조합을 사용할 수 있습니다. 쉼표로 구분된 목록으로 입력합니다. 옵션 사이에 공백을 포함하지 않았는지 확인하십시오. 일치하는 서비스를 찾습니다. 어느 하나 상태.

systemctl --type=service --state=failed,exited

systemctl로 실패했거나 종료된 서비스 찾기

오른쪽 화살표 키를 눌러 오프스크린 열을 보면 목록에 종료된 서비스와 실패한 서비스가 혼합되어 있음을 알 수 있습니다.

systemctl에서 찾은 실패한 서비스와 종료된 서비스의 혼합

기본적으로, systemctl 에 의해 시작된 프로세스(서비스 및 데몬)를 나열합니다. systemd 왜냐하면 systemd 유효한 단위 파일이 포함된 단위 파일을 찾았습니다. 그렇기 때문에 이 모든 과정의 약칭이 “단위”입니다.

명시적으로 요청하는 옵션이 있습니다. systemctl 단위를 나열하지만 기본 작업이므로 자주 사용되지 않습니다.

이러한 명령은 동일한 결과를 생성합니다.

sudo systemctl list-units --type=service --state=running
sudo systemctl --type=service --state=running

systemctl을 사용하여 단위 파일 나열

의 범위를 확장할 수 있습니다. systemctl 명령을 포함하여 list-unit-files 옵션. 이것은 시작된 서비스와 데몬에 대한 보고뿐만 아니라 모든 단위 파일 컴퓨터에 설치됩니다.

systemctl list-unit-files --state=enabled

systemctl을 사용하여 단위 파일 나열

컬러 테이블이 표시됩니다.

적은 파일 브라우저에 표시되는 systemctl에 의해 생성된 단위 파일 목록

제거 state 옵션은 필터링을 제거합니다. 출력에는 상태에 관계없이 설치된 모든 단위 파일이 포함됩니다.

systemctl list-unit-files

systemctl을 사용하여 필터링 없이 단위 파일 나열

출력에는 이전 명령의 결과보다 더 많은 항목이 포함됩니다.

systemctl에 의해 나열되고 더 적은 파일 브라우저에 표시되는 모든 단위 파일

테스트 컴퓨터에서 결과 목록은 이전 명령의 출력보다 거의 4배 더 깁니다.

사용하고 싶다면 state 옵션을 사용하면 앞에서 본 것처럼 여러 상태를 사용할 수 있습니다. 동일한 규칙이 적용됩니다. 옵션을 쉼표로 구분된 값으로 제공하고 공백을 포함하지 마십시오.

이 명령은 비활성화되었거나 실행에 실패한 모든 단위 파일을 나열합니다.

systemctl list-unit-files --state=enabled,failed

systemctl을 사용하여 두 상태 중 하나와 일치하는 단위 파일 찾기

상태 옵션으로 선택한 항목에 따라 필터링된 감소된 수의 결과가 표시됩니다.

systemctl에서 찾은 비활성화 및 실패한 단위 파일의 혼합

하나의 서비스를 자세히 살펴보기

한 서비스나 데몬에 대한 내용이 관심을 불러일으키고 더 깊이 살펴볼 가치가 있는 경우 systemctl 상태 옵션을 사용하여 자세히 볼 수 있습니다.

SSH 데몬인 sshd를 살펴보겠습니다. 상태 옵션과 서비스 또는 데몬의 이름을 사용하기만 하면 됩니다.

systemctl status sshd

systemctl에 의해 표시되는 단일 서비스의 세부 정보

이 소형 디스플레이에는 다음이 표시됩니다.

  • 짧은 설명과 함께 서비스 이름입니다. 색상으로 구분된 점은 실행 중인지 여부를 보여줍니다. 녹색은 실행 중임을 의미하고 빨간색은 실행 중이지 않음을 의미합니다.
  • 단위 파일의 경로를 포함하여 로드된 항목입니다.
  • 얼마나 오랫동안 실행되었습니다.
  • 문서가 있는 위치 man 수동.
  • 실행 중인 인스턴스의 프로세스 ID입니다.
  • 실행 중인 이 서비스의 동시 인스턴스 수입니다. 보통 이것은 하나일 것입니다.
  • 얼마나 많은 메모리가 사용되고 있습니다.
  • CPU 시간이 얼마나 소모되었는지.
  • 서비스가 속한 제어 그룹입니다.

시스템 로그의 관련 항목도 표시됩니다. 일반적으로 서비스 시작과 같은 이벤트입니다. 올바르게 시작되지 않은 서비스나 데몬을 찾고 있는 경우 유용한 정보가 될 수 있습니다.

관련된: journalctl을 사용하여 Linux 시스템 로그를 읽는 방법

자율 시스템

서비스와 데몬은 운영 체제의 많은 자동 작업을 제공하므로 매우 중요합니다. 그것은 그들의 건강도 중요하다는 것을 의미합니다.

서비스, ​​데몬 및 단위 파일에 대한 보기를 얻는 것은 쉽고 유익합니다. 서비스나 데몬이 시작을 거부하는 경우에도 유용한 문제 해결 단계입니다.

관련된: Linux에서 “열린 파일이 너무 많습니다” 오류를 해결하는 방법