CS

[Linux] 런레벨

kyoulho 2024. 9. 18. 15:08

런레벨의 개념

런레벨(runlevel)은 리눅스 시스템의 운영 모드를 정의하는 숫자 또는 이름이다. 각 런레벨은 시스템이 어떤 서비스와 데몬을 실행할지를 결정한다. 현대적인 배포판에서는 systemd를 사용하여 타겟(target)이라는 개념으로 런레벨을 관리한다.

 

런레벨의 종류

아래는 systemd에서 사용되는 타겟과 전통적인 런레벨 간의 대응 관계를 나타낸 표이다.

런레벨 영문 모드 systemd 타겟 설명
0 Power Off runlevel0.target
poweroff.target
시스템 종료 모드이다. 시스템을 안전하게 종료한다.
1 Rescue runlevel1.target
rescue.target
구조 모드(단일 사용자 모드)이다. 최소한의 서비스만 실행된다.
3 Multi-User runlevel3.target
multi-user.target
멀티유저 모드(콘솔)이다. 네트워크가 활성화된 텍스트 모드이다.
5 Graphical runlevel5.target
graphical.target
멀티유저 모드(GUI)이다. 그래픽 데스크톱 환경을 제공한다.
6 Reboot runlevel6.target
reboot.target
시스템 재부팅 모드이다. 시스템을 재시작한다.

 

런레벨 모드를 확인하는 방법

현재 타겟 확인하기

systemd를 사용하는 리눅스 배포판에서 현재 설정된 기본 타겟을 확인하려면 다음 명령어를 사용한다.

$ systemctl get-default
graphical.target

이는 현재 시스템이 그래픽 데스크톱 환경으로 부팅된다는 것을 의미한다.

또는 심볼릭 링크를 확인하여 기본 타겟을 알 수 있다.

$ ls -l /etc/systemd/system/default.target
/etc/systemd/system/default.target -> /usr/lib/systemd/system/graphical.target

여기서 /etc/systemd/system/default.target은 현재 기본 타겟을 가리키는 심볼릭 링크이며, graphical.target을 가리키고 있다.

현재 런레벨 확인하기

전통적인 런레벨 번호를 확인하려면 다음 명령어를 사용한다.

$ runlevel
N 5

여기서 N은 이전 런레벨을 나타내며, 5는 현재 런레벨이다.

 

런레벨을 변경하는 방법

일시적으로 런레벨 변경하기

systemd에서는 isolate 명령어를 사용하여 타겟을 일시적으로 변경할 수 있다.

$ sudo systemctl isolate [타겟 이름]

예를 들어, 구조 모드(rescue mode)로 변경하려면:

$ sudo systemctl isolate rescue.target

부팅 시 기본 런레벨 변경하기

명령어를 사용하여 변경

부팅 시 시스템이 시작되는 기본 타겟을 변경하려면 set-default 명령어를 사용한다.

$ sudo systemctl set-default [타겟 이름]

예를 들어, 텍스트 기반의 멀티유저 모드로 변경하려면:

$ sudo systemctl set-default multi-user.target

변경 사항이 적용되었는지 확인하려면:

$ systemctl get-default
multi-user.target

 

심볼릭 링크를 수동으로 변경

심볼릭 링크를 직접 수정하여 기본 타겟을 변경할 수도 있다.

$ sudo ln -sf /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target

주의 사항

  • 중요한 작업 진행 중에는 런레벨 변경을 신중히 해야 한다. 시스템 서비스가 중지되거나 예기치 않은 동작이 발생할 수 있다.
  • root 권한이 필요하므로 명령어 실행 시 주의해야 한다.
  • 런레벨 변경 후에는 일부 서비스나 데몬이 예상대로 동작하지 않을 수 있으므로, 필요한 경우 수동으로 시작하거나 설정을 확인해야 한다.

 

참고 자료:

'CS' 카테고리의 다른 글

[Linux] 마운트  (0) 2024.09.18
[Linux] vi 에디터  (1) 2024.09.18
[Linux] 가상 콘솔  (0) 2024.09.18
[Linux] 개요  (1) 2024.09.15
[Linux] 파일 시스템(/etc/fstab)  (0) 2024.08.26