반응형








처음 리눅스가 부팅할 때에 시작하는 프로세스는 init이라는 프로세스이며, 이 init이라는 프로세스가 RUN LEVEL에 따라서 각 다음 프로세스를 실행 시키게 된다. 즉 최상위 프로세스는 init이 된다. 그리고 각 RUN LEVEL에 따른 설정은 "/etc/rc.d/rc[RUNLEVEL].d" 안에 나열된 데몬들을 각 실행 순서에 따라 실행 시키게 된다. pstree 명령어로 각 프로세스[데몬]들의 상관관계를 확인할 수 있다.

예)

init─┬─NetworkManager─┬─dhclient

     │                └─{NetworkManager}

     ├─acpid

     ├─anacron

     ├─atd

     ├─auditd───{auditd}

     ├─automount───4*[{automount}]

     ├─avahi-daemon───avahi-daemon

     ├─bonobo-activati───{bonobo-activat}

     ├─console-kit-dae───63*[{console-kit-da}]

     ├─crond

     ├─cupsd

     ├─2*[dbus-daemon───{dbus-daemon}]

     ├─dbus-launch

     ├─devkit-power-da

     ├─fcoemon

     ├─gconfd-2

     ├─gdm-binary───gdm-simple-slav─┬─Xorg

     │                              ├─gdm-session-wor

     │                              └─gnome-session─┬─at-spi-registry

     │                                              ├─gdm-simple-gree

     │                                              ├─gnome-power-man

     │                                              ├─metacity

     │                                              ├─polkit-gnome-au

     │                                              └─{gnome-session}

     ├─gnome-settings-───{gnome-settings}

     ├─gvfsd

     ├─hald───hald-runner─┬─hald-addon-acpi

     │                    └─hald-addon-inpu

     ├─lldpad

     ├─master─┬─pickup

     │        └─qmgr

     ├─5*[mingetty]

     ├─modem-manager

     ├─pcscd───{pcscd}

     ├─polkitd

     ├─pulseaudio───2*[{pulseaudio}]

     ├─rpc.idmapd

     ├─rpc.statd

     ├─rpcbind

     ├─rsyslogd───3*[{rsyslogd}]

     ├─rtkit-daemon───2*[{rtkit-daemon}]

     ├─sshd───sshd───bash───pstree

     ├─udevd───2*[udevd]

     └─wpa_supplicant




 각각의 폴더의 이름은 시작시키는 프로세스의 특성과 실행 우선순위와 이름을 나타내는데 형식은 다음과 같다.

[S,K]{숫자}{데몬이름}

 S 로시작하는 링크 파일은 부팅시 시작하는 Start Script Link File이다.

 K 로 시작하는 링크 파일은 부팅시 시작하지 않는  Kill Script Link File이다.


 각 스크립트들은 /etc/init.d/에 위치하고 있으며, 각 부트레벨에 따른 on/off 설정은 chkconfig로 설정 할 수 있다.

 예) chkconfig --level 345 sshd on


 

각 런레벨에 대한 특징들은 다음과 같으며 /etc/inittab에 주석으로 설명되어 있다.

0 - halt(시스템 종료 : 초기 기본 설정으로 사용하지 말것)

1 - Single User Mode

2 - Multiuser, without NFS( RUN LEVEL 3과 동일하지만 networking을 사용하지 않음)

3 - Full Multiuser Mode (Networking을 사용)

4 - unused

5 - X11 

6 - reboot (시스템 재시작 : 초기 기본 설정으로 사용하지 말것


런레벨을 변경하려면 아래와 같은 명령어로 간단하게 병경 가능하다

# telinit 3



 위와 같은 변경 방법은 시스템이 재시작된 후에는 적용되지 않는다는 것이다. 

 매 부팅마다 동일한 런레벨을 가지고 싶을 경우 /etc/inittab에 RUN LEVEL을 변경해주면 된다.

 아래 내용은 /etc/inittab의 내용이며 <변경될 부분>에 설정하고자 하는 런레벨을 설정하면 된다.

# inittab is only used by upstart for the default runlevel.

#

# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

#

# System initialization is started by /etc/init/rcS.conf

#

# Individual runlevels are started by /etc/init/rc.conf

#

# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf

#

# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,

# with configuration in /etc/sysconfig/init.

#

# For information on how to write upstart event handlers, or how

# upstart works, see init(5), init(8), and initctl(8).

#

# Default runlevel. The runlevels used are:

#   0 - halt (Do NOT set initdefault to this)

#   1 - Single user mode

#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#   3 - Full multiuser mode

#   4 - unused

#   5 - X11

#   6 - reboot (Do NOT set initdefault to this)

#

id:<변경될 부분>:initdefault:


반응형

+ Recent posts