Ⅰ. 런레벨(Run Level) 이란 ?
런레벨(runlevel)은 Unix와 Linux 계열 운영체제에서 시스템의 동작 모드를 정의하는 번호 또는 식별자입니다. 각 런레벨은 특정한 시스템 동작 상태를 나타내며 해당 런레벨에 따라 실행되는 서비스와 프로세스가 결정됩니다.
Ⅱ. 리눅스 부팅(Booting) 순서
1) 리눅스 커널은 하드웨어를 확인하고 root 의 읽기 전용으로 마운트 수행
2) 디스크 검사 후 root의 쓰기 전용으로 다시 마운트 수행
3) 리눅스 커널은 init 프로세스를 실행하고 PID 1번 할당
4) init 프로세스는 자신의 설정파일인 /etc/initab 파일을 읽어서 디바이스(Device) 및 프로세스(Process)를 활성화
5) init 프로세스의 작업 수행은 리눅스의 Run Level 에 따라 다르게 부팅합니다.
Unix와 Linux 시스템에서는 일반적으로 0부터 6까지의 7개의 런레벨이 있습니다. 각 런레벨은 특정한 동작 모드를 나타내며 다음과 같습니다.
Run Level 값 | 설명 |
0 | 시스템을 정지(Shutdown) 상태로 전환합니다. |
1 | 단일 사용자(Single-User) 모드로 전환합니다. 일부 서비스는 비활성화되고, 오직 관리자(root)만 시스템에 로그인할 수 있습니다. 관리 상태의 단계이며, 암호를 변경할 때 사용합니다. |
2 | 다중 사용자(Multi-User) 모드로 전환합니다. 네트워크 기능을 사용하지 않는 상태입니다. |
3 | 다중 사용자(Multi-User) 모드로 전환합니다. 네트워크 기능을 사용합니다. (일반적으로 리눅스 서버에서 사용됩니다) |
4 | 예약된 사용자 정의 런레벨입니다. 현재는 사용되지 않습니다. |
5 | Run Level 3으로 기동 이후 그래픽 사용자 인터페이스(GUI)를 사용하는 다중 사용자(Multi-User) 모드로 전환합니다. (일반적으로 리눅스 데스크톱에서 사용됩니다) |
6 | 시스템을 재부팅(Reboot)합니다. |
각 런레벨은 해당 상태에서 실행되어야 하는 서비스 및 프로세스를 제어하기 위해 초기화 시스템(init system)에 의해 사용됩니다. 하지만 최신 리눅스 배포판에서는 systemd와 같은 초기화 시스템을 사용하며, 더 유연한 동작 제어를 위해 전통적인 런레벨 대신 systemd 타겟을 사용합니다.
Ⅲ. Rocky Linux 에서의 Run Level
Rocky Linux는 대부분의 최신 리눅스 배포판과 마찬가지로 전통적인 런레벨(runlevel) 대신 시스템 동작을 관리하기 위해 systemd 타겟(target)을 사용합니다. systemd는 시스템과 서비스 관리자로, Linux SysV init 스크립트와의 호환성을 제공하며 많은 새로운 기능을 도입합니다.
직접 런레벨 설정을 수정하는 대신, Rocky Linux 시스템의 동작을 관리하기 위해 systemd 타겟을 다루는 방법을 알아보겠습니다. 아래는 시스템 동작을 관리하기 위한 일반적인 systemd 명령어입니다:
1) systemctl get-default: 이 명령은 현재 기본 타겟(default target)을 표시합니다. 기본 타겟은 시스템 부팅 시 동작을 정의합니다.
2) systemctl set-default [target]: 이 명령을 사용하여 시스템의 기본 타겟을 설정할 수 있습니다. 예를 들어, 기본 타겟을 다중 사용자 모드로 설정하려면(전통적인 시스템의 runlevel 3과 유사), 다음과 같이 실행할 수 있습니다: systemctl set-default multi-user.target
3) systemctl isolate [target]: 이 명령을 사용하여 즉시 다른 타겟으로 전환할 수 있습니다. 예를 들어, 그래픽 타겟으로 전환하려면(runlevel 5와 유사), 다음과 같이 사용할 수 있습니다: systemctl isolate graphical.target
systemctl list-units --type=target: 이 명령은 시스템에 있는 모든 사용 가능한 타겟을 나열합니다.
systemd 타겟은 런레벨에 비해 더 세분화된 시스템 동작 제어를 제공합니다. 단일 런레벨에 미리 정의된 일련의 서비스를 정의하는 대신, 타겟은 타겟 간 전환 시 시작되거나 중지되는 서비스를 사용자 정의할 수 있도록 합니다.
'시스템(Linux)' 카테고리의 다른 글
service 명령어와 systemctl 명령어에 대해 알아보곘습니다. (0) | 2023.08.14 |
---|---|
리눅스 내 동시 접속자 증가에 대응하기 위한 몇 가지 주요 조치 사항 (0) | 2023.07.14 |
HWclock 에 대해 알아보겠습니다. (0) | 2023.06.17 |
로키(Locky) 리눅스 기본 설치에 대해 알아보도록 하겠습니다. (0) | 2023.05.23 |
SendMail 에 대해 알아보겠습니다. (0) | 2023.05.02 |