Linux/리눅스 시스템 관리

시스템 및 서비스 관리

Linuxpia4U 2024. 9. 17. 03:46
반응형

시스템 및 서비스 관리

systemd는 현대 리눅스 배포판에서 널리 사용되는 시스템 및 서비스 관리자입니다. systemd는 시스템의 부팅 과정, 서비스 관리, 시스템 상태 모니터링 및 로그 관리 등의 기능을 수행하여 시스템의 초기화와 관리를 담당합니다. 다음은 systemd의 주요 기능과 서비스 관리에 관련된 핵심 개념들을 소개합니다.

1. systemd의 주요 개념

  • 유닛(Unit): systemd에서 관리되는 개별 작업의 단위로, 서비스, 소켓, 타이머, 장치, 마운트 포인트 등 다양한 유형이 있습니다. 각 유닛은 .service, .socket, .mount 등의 확장자를 가진 구성 파일로 정의됩니다.
  • 타겟(Target): 시스템의 특정 상태를 나타내며, 기존의 SysVinit의 런레벨(runlevel)과 유사합니다. 예를 들어, multi-user.target은 텍스트 모드의 멀티유저 환경을, graphical.target은 GUI 환경을 나타냅니다.
  • 서비스(Service): 시스템에서 실행되는 백그라운드 프로세스입니다. systemd는 서비스의 시작, 중지, 재시작 등을 관리하며, 서비스의 상태와 동작 방식을 정의할 수 있습니다.

2. 주요 명령어

systemd의 주요 명령어는 systemctl입니다. systemctl을 사용하여 유닛을 관리하고 시스템의 상태를 제어할 수 있습니다. 다음은 서비스 관리를 위한 주요 systemctl 명령어들입니다.

서비스 시작 및 중지

   # 서비스 시작
   sudo systemctl start <service_name>

   # 서비스 중지
   sudo systemctl stop <service_name>

서비스 재시작 및 상태 확인

   # 서비스 재시작
   sudo systemctl restart <service_name>

   # 서비스 상태 확인
   systemctl status <service_name>
  • status 명령어는 서비스의 현재 상태와 함께 로그의 일부를 보여줍니다. 이를 통해 서비스가 제대로 작동하는지, 오류가 발생했는지 확인할 수 있습니다.

서비스 활성화 및 비활성화

  • 서비스를 활성화하면 시스템 부팅 시 자동으로 시작되도록 설정합니다.
# 서비스 활성화
sudo systemctl enable <service_name>

# 서비스 비활성화
sudo systemctl disable <service_name>

서비스 리로드 및 재로드

  • 서비스 설정 파일을 변경한 후, 변경 내용을 반영하기 위해 서비스를 다시 로드합니다. 
  • # 서비스 리로드 sudo systemctl reload <service_name>
  • 일부 서비스는 reload를 지원하지 않을 수 있습니다. 이런 경우 restart를 사용해야 합니다.

3. 유닛 파일(Unit File) 관리

  • systemd의 유닛은 일반적으로 /etc/systemd/system/ 또는 /lib/systemd/system/ 디렉터리에 있는 유닛 파일로 정의됩니다.
  • 유닛 파일은 서비스의 동작을 정의하며, 서비스 시작 명령, 의존성, 시작 조건 등을 지정할 수 있습니다.

유닛 파일 재로드

  • 유닛 파일을 수정한 후에는 systemctl에 변경 사항을 알려야 합니다.
    sudo systemctl daemon-reload
  • 이 명령어를 실행하면 systemd가 유닛 파일의 변경 사항을 다시 읽어 들이게 됩니다.

4. 타겟(Target) 관리

  • systemd에서 타겟은 시스템의 특정 상태를 정의하는 데 사용됩니다.
  • 현재 활성화된 타겟을 확인하려면 다음 명령어를 사용합니다.
    systemctl get-default
  • 타겟을 변경하려면 다음과 같이 사용합니다.
    sudo systemctl set-default <target_name>
  • 예를 들어, GUI를 비활성화하고 텍스트 모드로 부팅하려면 multi-user.target을 기본값으로 설정할 수 있습니다.

5. 로그 관리

  • systemd는 시스템과 서비스의 로그를 관리하는 journal 시스템을 제공합니다. 로그를 확인하려면 journalctl 명령어를 사용합니다.
# 모든 로그 보기
journalctl

# 특정 서비스의 로그 보기
journalctl -u <service_name>

# 부팅 이후의 로그만 보기
journalctl -b

'journalctl -b' 결과

정리

systemd는 현대 리눅스 시스템에서 중요한 역할을 담당하는 서비스 관리 도구입니다. 유닛을 통해 서비스와 시스템 리소스를 효율적으로 관리하며, systemctl 명령어를 사용하여 서비스의 시작, 중지, 재시작, 상태 확인 등 다양한 작업을 수행할 수 있습니다. 또한, 로그 관리 기능을 통해 서비스의 동작과 시스템 상태를 모니터링할 수 있습니다. systemd를 제대로 활용하면 시스템 운영과 유지보수가 훨씬 효율적이고 안정적으로 이루어집니다.

반응형