데비안 / 우분투에서 Runlevel 'S'는 무엇입니까?


8

Wikipedia에 따르면 'S'는 표준 단일 실행 수준 인 "단일 사용자 모드"로되어 있습니다. 그러나 내가 실수하지 않으면 데비안의 단일 사용자 모드는 Runlevel 1입니다. 한 데비안 기사 에서 'S'는 "시스템이 다른 런레벨로 사용하는 런레벨"이라고 주장합니다. 흥미로운 ...

실제로, 나는 지금까지이 런레벨을 거의 무시했지만, 오늘 나는 Firestarter (실제로 최종 사용자 방화벽)와 궁금해하기 때문에 방화벽 규칙이 생성되는 방화벽 규칙을 가지고 놀았습니다. 그러나 나는 그것이 /etc/rcS.d에 스타트 업 훅을 생성한다는 것을 알아 차렸고, 방화벽 스크립트가 그렇게해야하는지 궁금했습니다.

최신 정보

Shorewall 패키지 (강력한 "Debianized"패키지)도 rcS.d에 시작 후크를 생성하기 때문에 Debian / Ubuntu에 실제로 무엇이 있는지 알고 싶습니다.

답변:


3

이런 식으로 런레벨을 봅니다.

 S - true single user mode usually drops you into a minimal root shell
 1 - Administrative mode, you get a standard login request before access
 2 - Multi-user without TCP/IP networking -- could use serial ports for other logins
 3 - Multi-user with TCP/IP networking and text 
 4 - To be determined by the system owner
 5 - Multi-User with TCP/IP networking and graphic console 
 6 - reboot
 0 - shutdown and power down

따라서 TCP / IP가 시작되어 실행되고 일반적으로 Init State 3에서만 발생하는 경우 방화벽이 실제로 필요합니다.


1
이 전체 런레벨 개념은 과거의 유산입니다. 현재는 일반적으로 단일 사용자 모드 (유지 보수 용)이며 다른 일반 모드 (예 : 배포판에 따라 2 또는 5)가 사용됩니다. 나는 다른 것에 대한 유스 케이스를 실제로 보지 못한다.
cstamas

실제로 더 나쁜 것은 최신 배포판이 실행 수준을 모두 없애고 (현재 레거시 문제로 지원함) 의존성이있는 명명 된 상태로가는 것입니다 (Fedora 15 참조).
mdpc

3

위의 모든 내용은 질문에 대한 직접적인 대답을하지 않는 것 같습니다.

내가 찾은 모든 것에서 rcS.d스크립트는 " 단일 "이 아닌 " 시작 "에 S대한 서대로 구현됩니다 .

부팅하는 동안 모두 실행됩니다. 실행 레벨 1을 사용하려면 스크립트 rc1.d가 실행됩니다 (방금 수행 한 모든 작업을 고려할 때 비어있을 수 있습니다 rcS)

요컨대, rcS스크립트는 rc3효율적으로 시스템이 단일 사용자 모드에 놓인 다음 다시 생각하고 실제로해야 할 일을 결정합니다. 매우 혼란스럽고 대부분 문서화가 잘못되었습니다.

증거로을 살펴보면 /etc/inittab다음을 찾을 수 있습니다.

 # Boot-time system configuration/initialization script.<br>
 # This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

뒤에 많은 줄이 닮았습니다.

l3:3:wait:/etc/init.d/rc 3

1

런레벨 1은 런레벨이라고도합니다.

데비안 기반 시스템에서 이것은 단일 사용자 / 최소 모드 입니다. 데비안 런레벨 참조 :

런레벨은 0에서 6까지의 숫자 또는 문자 S입니다. 런레벨 0, 6 및 S는 각각 종료, 재부팅 및 단일 사용자 모드 용으로 예약되어 있습니다.


0

S는 단일 사용자 모드입니다.

http://wiki.debian.org/RunLevel


따라서 스크립트가 런레벨 S (예 : Shorewall)에 시작 후크 만 있고 런레벨 '2'로 부팅하면 부팅 시퀀스가 ​​스크립트를 시작합니까?
Chris Lercher

Linux에서 / etc / inittab에 설명 된 기본 상태가 N 인 경우 UNIX와 달리 /etc/rc.d/rcN.d의 'S'항목 만 (이 위치는 Linux 배포판에 따라 다를 수 있음) 시작하는 동안 실행되며 다른 init 디렉토리는 사용되지 않습니다.
mdpc

일반적으로 inittab에서 기본 실행 수준을 설정합니다. 숫자가 증가합니다. 예를 들어, init이 S에서만 실행 레벨 1과 동일하게 구성된 경우 부팅시 시스템은 실행 레벨 1에서 시작하여 해당 레벨에 대한 모든 init 스크립트 실행을 증가시킨 다음 실행 레벨을 증가시키고 반복 할 때까지 반복합니다. inittab에 지정된 기본 런레벨에 도달합니다. 여기 두 가지가 있습니다. 따라서 1 또는 2로 켜도록 구성된 모든 것이 켜집니다.
dmourati

1
제 질문은 데비안 / 우분투에만 해당됩니다. 방금 다음을 시도했습니다. 간단한 스크립트를 /etc/rcS.dand에 넣었습니다. /etc/rc2.d각각은 짧은 메시지 (타임 스탬프 포함)를 로그 파일에 작성합니다. 결과 : 부팅 후 rcS에 대한 로그 메시지가 있고 5 초 후에 rc2에 대한 로그 메시지가 있습니다.
Chris Lercher

시스템이 부팅 할 기본 런레벨을 변경하려면 /etc/init/rc-sysinit.conf 파일에서 변수 DEFAULT_RUNLEVEL을 수정하십시오. 예를 들어, 시스템을 기본적으로 단일 사용자 모드로 부팅하려면 다음을 설정하십시오. env DEFAULT_RUNLEVEL = 1
dmourati

0

mdpc에서 제공하는 답변 외에도 실행 수준 1에서는 데몬 (서비스)이 시작되지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.