런레벨은 유닉스 시스템 V-스타일 초기화를 구현하는 컴퓨터 운영 시스템에서 작동어의 모드입니다. 관례적으로, 7개의 런레벨이 존재하며, 0에서 6까지 번호-매겨집니다. S는 때때로 레벨 중 하나의 동의어로 사용됩니다. 오직 하나의 런레벨이 시동 시에 실행됩니다; 런레벨은 차례로 실행되는 것이 아닙니다 (즉, 오직 렌레벨 2, 3 또는 4가 실행되고, 그 이상은 순차적으로 또는 임의의 다른 순서로 실행되지 않습니다).
런레벨은 부팅 후 컴퓨터의 상태를 정의합니다. 전형적으로 단일-사용자 모드, 네트워크 서비스 시작 없는 다중-사용자 모드, 네트워크 서비스 시작과 함께 다중-사용자 모드, 시스템 종료, 및 시스템 리부팅 시스템 상태에 서로 다른 런레벨이 할당됩니다 (임의의 특정 순서에서 할당되지 않습니다). 이들 구성의 정확한 설정은 운영 시스템과 리눅스 배포판에 따라 다릅니다. 예를 들어, 런레벨 4는 한 배포판에서는 다중-사용자 GUI 서버-없는 구성이고, 또 다른 배포판에서는 아무것도 없을 수 있습니다. 런레벨은 공통적으로 이 기사에서 설명된 일반적인 패턴을 따릅니다; 어쨌든, 일부 배포판은 특정 구성을 사용합니다.
표준 실행에서, 컴퓨터가 런레벨 영에 들어갈 때, 컴퓨터는 정지하고, 컴퓨터가 런레벨 6에 들어갈 때, 컴퓨터는 리부팅됩니다. 중간 런레벨 (1–5)은 드라이버가 마운트되고 네트워크 서비스가 시작된다는 관점에서 다릅니다. 기본 런레벨은 전형적으로 3, 4 또는 5입니다. 더 낮은 런레벨은 보통 유지 관리 또는 긴급 수리에 유용한데, 왜냐하면 그것들은 보통 네트워크 서비스를 전혀 제공하지 않기 때문입니다. 런레벨 구성의 특정 세부 사항은 운영 시스템과 시스템 관리자 사이에 크게 다릅니다.
다양한 리눅스 배포판에서, 버전 7 유닉스에서 사용된 전통적인 /etc/rc 스크립트는 먼저 런레벨로 교체되고 그런-다음 대부분의 주요 배포판에서 systemd 상태로 대체되었습니다.
Standard runlevels
표준 런레벨 | ||
ID | 이름 | 설명 |
0 | 끄기 | 장치를 끕니다. |
1 | 단일-사용자 모드 | 네트워크 인터페이스를 구성하거나 데몬을 시작하지 않습니다. |
6 | 리부트 | 디바이스를 리부팅합니다. |
Linux
비록 systemd가, 2016년이래로, 대부분의 주요 리눅스 배포판에서 기본적으로 사용되지만, 렌레벨은 sysvinit 프로젝트에서 제공된 수단을 통해 여전히 사용될 수 있습니다. 리눅스 커널이 부팅된 후, /sbin/init 프로그램은 각 런레벨에 대해 동작을 결정하기 위해 /etc/inittab 파일을 읽습니다. 사용자가 커널 부트 매개변수로 또 다른 값을 지정하지 않는 한, 시스템은 기본 런레벨에 들어가려고 (시작하려고) 시도합니다.
Linux Standard Base specification
Linux Standard Base (LSB)를 준수하는 시스템은 여기에 제공된 정확한 런레벨을 제공하거나 여기에 설명된 의미를 제공할 필요가 없고, 여기에 설명된 임의의 레벨을 동등한 기능성을 제공하는 다른 레벨로 매핑할 수 있습니다.
LSB 4.1.0 | ||
ID | 이름 | 설명 |
0 | 끄기 | 디바이스를 끕니다. |
1 | 단일-사용자 모드 | 관리적 임무에 대한 모드. |
2 | 다중-사용자 모드 | 네트워크 인터페이스를 구성하지 않고 네트워크 서비스를 내보내지 않습니다. |
3 | 네트워킹을 가진 다중-사용자 모드 | 시스템을 정상적으로 시작합니다. |
4 | 사용하지 않음/사용자-정의가능 | 특별한 목적에 대해. |
5 | 완전 모드 | 런레벨 3과 같음 + 창 관리자. |
6 | 리부트 | 디바이스를 리부팅합니다. |
Ubuntu Linux
Ubuntu는 런레벨과 Systemd 사이에 다음과 같은 매핑을 가집니다.
Ubuntu Linux runlevels | |
ID | Description |
0 | poweroff.target |
1 | rescue.target |
2, 3, 4 | multi-user.target |
5 | graphical.target |
6 | reboot.target |
현재의 런레벨을 확인하기 위해서는
- runlevel
N 5
또는 다음과 같이 확인할 수 있습니다:
- sudo systemctl get-default
graphical.target
만약 런레벨을 바꾸고 싶다면,
- sudo systemctl set-default Tab ↹
basic.target printer.target
bluetooth.target reboot.target
cryptsetup-pre.target remote-cryptsetup.target
cryptsetup.target remote-fs-pre.target
ctrl-alt-del.target remote-fs.target
default.target rescue.target
emergency.target rpcbind.target
exit.target runlevel0.target
final.target runlevel1.target
friendly-recovery.target runlevel2.target
getty-pre.target runlevel3.target
getty.target runlevel4.target
graphical.target runlevel5.target
halt.target runlevel6.target
hibernate.target shutdown.target
hybrid-sleep.target sigpwr.target
initrd-fs.target sleep.target
initrd-root-device.target slices.target
initrd-root-fs.target smartcard.target
initrd-switch-root.target sockets.target
initrd.target sound.target
kexec.target spice-vdagentd.target
local-fs-pre.target suspend.target
local-fs.target suspend-then-hibernate.target
multi-user.target swap.target
network-online.target sysinit.target
network-pre.target system-update-pre.target
network.target system-update.target
nss-lookup.target timers.target
nss-user-lookup.target time-sync.target
paths.target umount.target
poweroff.target
Rescue는 GNU GRUB에서 접근할 수 있기 때문에, 일반적으로 그래픽 데몬을 통해서 로그인할 것인지, 터미널에서 접근할 것인지를 결정할 수 있습니다. 만약 그래픽 카드에 문제가 생겨서 그래픽 데몬이 동작하지 않을 때에는 다음과 같이 바꿀 수 있습니다.
- sudo systemctl set-default multi-user.target
그렇지만, 부팅을 했을 때 그래픽 드라이버의 문제로 검은색 화면을 만나다면, Ctrl+Alt+F2를 눌러서 터미널 로그인 화면으로 전환할 수 있습니다. 만약 전환이 즉시 이루어지지 않을 때에는 F2 대신에 F3~F6까지 바꾸어 가면서 눌러볼 수 있습니다. 이때 어느 것도 접근이 되지 않으면, rescue 모드로 접근하셔서 시스템을 점검해야 합니다.
External links
- Runlevel Definition - by The Linux Information Project (LINFO)
- What are run levels? - LinuxQuestions.org
- FreeBSD system startup
- chkconfig, a utility for querying and updating runlevel-controlled services