telinit와 rc*.d에서 수동으로 실행하는 스크립트의 차이점

telinit와 rc*.d에서 수동으로 실행하는 스크립트의 차이점

Linux 부팅 프로세스를 디버깅하려고 합니다. 기본 런레벨을 2 또는 3으로 설정하면 시스템이 조용히 정지됩니다. 커널 매개변수를 통해 런레벨 1에 들어갈 수 있고 명령을 /etc/rc2.d통해 모든 스크립트를 실행할 수 service ***** start/stop있으며 모든 것이 정상입니다. 하지만 런레벨 2나 3을 실행하면 telinit쉘 프롬프트가 표시되지 않습니다. 그렇다면 이 두 가지 방법의 차이점은 무엇입니까?

저는 SysVinit을 사용합니다. 내용 /etc/inittab(수정하지 않았습니다):

id:3:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
# of power left.  Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.  
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"


# agetty on serial port
s0:2345:respawn:/sbin/agetty -L -i 9600 ttyS0 vt100
s1:2345:respawn:/sbin/agetty -L -i 9600 ttyS1 vt100

1:2345:respawn:/sbin/agetty 38400 tty1 linux

# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon

# Ask for password at single user prompt
~~:S:wait:/sbin/sulogin

답변1

init단지 실행하는 것 이상의 일을 합니다 /etc/rc.d.

하나는 각 가상 터미널에 or 을 생성하는 것입니다 mingetty. getty다음 줄을 주석 처리하지 않았는지, 근처에 철자 오류가 있는지 확인하세요.

# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

(현재 RHEL/CentOS 시스템을 사용하고 있지 않으므로 보장할 수 없습니다!)

관련 정보