[CS/운영체제] 리눅스 프로세스 관리 - 4부

황제연·2025년 5월 21일
0

CS학습

목록 보기
81/193
post-thumbnail

systemd의 구조

유닛(Unit)

systemd는 유닛이라 부르는 Object 대상으로 나뉘고 다양한 type이 존재합니다

주요 유닛

  • service: 서버에서 제공하는 서비스, 보통 데몬이라고 부릅니다
  • target: 부팅레벨, 특정 동기화지점과 같이 유닛을 그룹화할 때 사용합니다
  • socket: 프로세스 간 통신에 사용되는 IPC 소켓을 의미합니다
  • path: 특정 파일 시스템이 변경될때까지 서비스 활성화를 지연시킬 때 사용합니다

서비스(Service)

서비스는 시스템에서 제공하는 서비스로 웹서버같은 데몬을 의미합니다
systemd환경에서의 서비스는 systemctl이라는 하나의 명령으로 제어됩니다

타겟(Target)

타겟은 부팅레벨, 특정 동기화지점과 같이 유닛을 그룹화할 때 사용합니다

CentOS 6의 init에서는 부팅과 관련된 런레벨을 0~6까지 숫자값으로 정의했습니다
systemd체제에서는 사용자의 편의를 위해, runlevelX.target이 X.target으로,
그리고 별도의 default.target 심볼릭 링크로 관리됩니다

소켓(Socket)

소켓 유닛은 systemd에 의해 제어되면서 소켓 기반으로 동작하는 파일 시스템 FIFO, 네트워크 소켓, IPC 등이 해당됩니다

systemd에서 소켓은 클라이언트의 요청이 있을 때 관련 데몬을 메모리에 올리고
종료되면 메모리에서 제거하는 기능을 제공합니다

관련 명령어

systemctl

systemd기반의 시스템 및 서비스 관리를 제어하는 명령입니다

사용법

systemctl [option] 명령 [서비스명]

systemd-analyze

시스템 부팅과 관련된 성능을 분석해주는 명령으로 부팅에 걸린 시간을 알 수 있습니다

사용법

systemd-analyze [argument]

로그 관리

systemd 관련 로그는 systemd-journald가 생성하고 관리합니다
systemd-journald는 로그인 관련 정보를 커널로부터 받고,
사용자 프로세스 관련 정보는 syslog로부터 받습니다

관련 정보는 /run/log/journal디렉토리에 저장되며, 재부팅하면 관련정보는 사라집니다
로그 관리는 journalctl이라는 명령을 사용합니다

지속적인 로그 관리방법

앞서 말한 /run/log/journal디렉토리에 저장되는 정보는 휘발성 정보이기 대문에
지속적인 로그 관리를 하려면 /var/log 디렉토리 내에 journal 디렉토리를 생성하고
관련 명령을 실행해야합니다

또한 로그 파일의 환경설정은 /etc/systemd/journald.conf 에서 제어합니다

참고

  • CentOS 7로 이해하는 리눅스 관리 및 시스템 보안 - 도서
profile
Software Developer

0개의 댓글