[Linux] systemctl 명령어의 기본과 활용

systemctlsystemd 시스템 및 서비스 매니저의 핵심 커맨드입니다. systemd는 리눅스의 초기화 시스템으로, 부팅과 서비스 관리를 처리합니다. systemctl을 통해 사용자는 서비스를 시작, 중지, 재시작할 수 있으며, 시스템 부팅 시 자동으로 서비스를 시작하거나 시작하지 않도록 설정할 수 있습니다.

주요 systemctl 명령어:

1. 서비스 상태 확인 :

   # systemctl status [service_name.service]
리눅스 시스템 서비스 상태 확인하는 방법

특정 서비스의 상태를 검토하여 활성, 비활성 또는 실패 여부를 확인합니다.

2. 서비스 시작 :

  # systemctl start [service_name.service]
리눅스 시스템 서비스 시작

특정 서비스를 즉시 시작합니다.

3. 서비스 중지 :

  # systemctl stop [service_name.service]
systemctl stop 명령어는 Linux 시스템에서 서비스를 즉시 중지시키는 데 사용

systemctl stop 명령어는 Linux 시스템에서 서비스를 즉시 중지시키는 데 사용됩니다. httpd.service와 같은 웹 서버 서비스를 종료하기 위해 sudo 권한으로 다음과 같이 실행할 수 있습니다

이 명령어를 사용하면 httpd 즉, Apache 웹 서버가 즉시 중지됩니다. 이렇게 함으로써 웹 서비스에 대한 접근이 더 이상 가능하지 않게 되므로, 서비스를 유지 관리하거나 문제를 해결할 때 사용할 수 있습니다.

4. 서비스 재시작 :

  # systemctl restart [service_name.service]
특정 서비스를 중지한 후, 필요한 점검이나 업데이트를 완료했을 경우, 서비스를 다시 시작하여 정상 운영을 재개하게 됩니다

특정 서비스를 중지한 후, 필요한 점검이나 업데이트를 완료했을 경우, 서비스를 다시 시작하여 정상 운영을 재개하게 됩니다.

5. 서비스 새로고침 :

  # systemctl reload [service_name.service]
서비스 구성을 변경한 후, 시스템에서 해당 서비스를 재시작하지 않고 서비스를 다시 로드

서비스 구성을 변경한 후, 시스템에서 해당 서비스를 재시작하지 않고 서비스를 다시 로드할 수 있습니다. 변경된 설정 파일을 효과적으로 읽어들여 서비스에 적용합니다. 아래는 systemctl 명령어를 사용하여 서비스 구성을 새로고침하는 방법입니다.

  1. 변경된 서비스 구성 파일이 있는지 확인합니다.
  2. 터미널을 열고 다음 명령어를 실행하여 systemd의 데몬을 리로드합니다.
    sudo systemctl daemon-reload 
  3. 이제 서비스의 설정을 적용하려면 아래 명령어를 사용하여 해당 서비스를 재시작할 필요 없이 새로고침합니다.
    sudo systemctl reload service_name.service 
    여기서 서비스이름은 새로고침하려는 서비스의 이름을 의미합니다.

시스템의 가동 시간을 최대화하는 동시에 필요한 설정 변경을 안전하게 관리하는 데 유용합니다.

6. 서비스 활성화 :

  # systemctl enable service_name.service
시스템 부팅 시 서비스가 자동으로 시작되도록 설정합니다.

httpd.service (HTTP 서버)를 시스템 부팅 시 자동으로 시작하도록 설정했습니다. systemctl enable 명령어는 httpd.service를 활성화하여 다음부터 시스템이 시작할 때 해당 서비스가 자동으로 실행되도록 합니다. 명령어 실행 결과, /etc/systemd/system/multi-user.target.wants/ 디렉터리에 /usr/lib/systemd/system/httpd.service로의 심볼릭 링크(바로가기)가 생성되어 자동 시작 설정이 완료, 서버가 재부팅 후에도 계속해서 웹 서비스를 제공할 수 있도록 하는 데 중요합니다.

7. 서비스 비활성화 :

  # systemctl disable service_name.service
시스템 부팅 시 서비스가 자동으로 시작되지 않도록 설정합니다.

   시스템 부팅 시 서비스가 자동으로 시작되지 않도록 설정합니다.

8. 서비스의 자동 시작 여부 확인 :

  # systemctl is-enabled service_name.service
서비스가 활성화(부팅 시 자동 시작)되어 있는지 확인합니다.

   서비스가 활성화(부팅 시 자동 시작)되어 있는지 확인합니다.

9. 모든 서비스 및 유닛 나열 :

  # systemctl list-units
모든 활성화된 유닛을 나열

   모든 활성화된 유닛을 나열합니다. `–all` 옵션을 추가하면 활성화되지 않은 유닛도 표시합니다.

응용을 해보면 아래 사진과 같이 실행 중인 서비스들의 항목만 출력이 가능하다.

실행중인 서비스 리스트만 확인하기

10. 시스템 셧다운 및 재부팅 :

  # systemctl poweroff

  # systemctl reboot

    시스템을 셧다운하거나 재부팅합니다.

11. 실패한 서비스 목록 확인 :

   # systemctl --failed
실패 상태인 서비스를 나열합니다.

    실패 상태인 서비스를 나열합니다.


systemctl 명령어 필드 정보!

httpd 서비스 상태 요약

  1. Loaded:

    • 서비스 로딩: httpd.service는 /usr/lib/systemd/system/httpd.service 위치에 로드됨.
    • 자동 시작 설정: 부팅 시 enabled.
    • 기본 설정: preset: disabled로 기본 비활성화 상태였음.
  2. Drop-In:

    • 추가 설정 디렉토리: httpd.service에 대한 추가 설정 포함.
    • 설정 파일: php-fpm.conf에서 서비스 설정 관리.
  3. Active:

    • 서비스 상태: active (running), 즉 정상 작동 중.
    • 서비스 시작 시간: Sun 2024-02-11 15:52:18 KST.
  4. Docs:

    • 문서: man:httpd.service(8)로 문서 확인 가능.
  5. Main PID:

    • 메인 PID: 7376.
  6. Status:

    • 현재 상태: “Started, listening on: port 80”, 80번 포트에서 대기 중.
  7. Tasks:

    • 생성된 태스크: 213개.
    • 최대 허용 태스크: 22580개.
  8. Memory:

    • 메모리 사용량: 34.4M.
  9. CPU:

    • CPU 사용 시간: 64ms.
  10. CGroup:

    • 컨트롤 그룹: /system.slice/httpd.service, 리소스 관리에 사용.

By Low ahn

리눅스를 처음 접하시는 분들은 위한 다양한 리눅스 정보를 공유합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다