1. 리눅스 RunLevel?
간단하게 윈도우의 기본 부팅, 안전모드로 부팅 등등과 동일한 개념이라 생각하면 된다.
RunLevel 0 : 시스템 종료(halt)
RunLevel 1 : 단일 사용자, 싱글 모드
RunLevel 2 : NFS(Network File System)를 지원하지 않는 다중 사용자 모드
RunLevel 3 : 모든 기능을 포함한 다중 사용자 모드(X윈도우 지원안함)
RunLevel 4 : 사용되지 않는 실행모드(사용자가 직접정의하여 사용)
RunLevel 5 : X윈도우 부팅, GUI환경
RunLevel 6 : 시스템 재부팅
런 레벨 전환
$ init 3
기본 런 레벨 설정
/etc/inittab 를 열어서
# Default runlevel. The runlevels used by RHS 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:5:initdefault: # 이부분을 변경한다. 보통 3이나 5.
Ubuntu / Debian 계열의 리눅스는 런레벨이 조금 다르다.
RunLevel 0 - Halt
RunLevel 1 - Single
RunLevel 2 - Full multi-user with display manager (GUI) 현재 기본
RunLevel 3 - Full multi-user with display manager (GUI)
RunLevel 4 - Full multi-user with display manager (GUI)
RunLevel 5 - Full multi-user with display manager (GUI)
RunLevel 6 - Reboot
런 레벨 전환
$ telinit N (N 에 숫자)
기본 런 레벨 설정
/etc/init/rc-sysinit.conf 열어서
# Default runlevel, this may be overriden on the kernel command-line
# or by faking an old /etc/inittab entry
env DEFAULT_RUNLEVEL=2 #이부분의 숫자를 바꿔준다.
2. 자동실행에 관해
리눅스는 부팅시 init 프로세스가 RunLevel에 따라 각 데몬을 자동 실행시키는데 이 자동실행 스크립트들이 등록된 곳이 /etc/rc0.d/ ~ /etc/rc6.d/ (rc{숫자 0 ~ 6 }.d) 이다.
ex> 런레벨 3으로 부팅시 /etc/rc3.d/ 에 등록된 스크립트들을 자동실행.
자동실행 스크립트 등록 순서
/etc/init.d/ 안에 자동실행 스크립트 작성
각각의 런 레벨에 따라 /etc/rcN.d/ 에 심볼릭 링크 생성
ex> 3레벨과 5레벨시 자동실행을 시키고자 하면 /etc/rc3.d/ 와 /etc/rc5.d/ 에 심볼링 링크를 생성한다.
3. 자동실행 스크립트 등록 예시
이전 포스팅에서 설치한 BitNami LAMPstacks의 실행 스크립트 (ctlscript.sh)를 리눅스 부팅시 자동으로 시작 되도록 등록해 보겠다.
리눅스 버전 : 우분투 서버 12.04 LTS
1. /etc/init.d/에 스크립트 작성. 파일명은 lampstacks
#vi /etc/init.d/lampstacks
#!/bin/bash
#lampstacks
export LAMP_HOME=/opt/lamp
case "$1" in
start) #on booting
echo -n "Starting LampStacks : \n"
$LAMP_HOME/ctlscript.sh start
echo
;;
stop) #on shutdown
echo -n "Shutting Down Lampstacks : \n"
$LAMP_HOME/ctlscript.sh stop
echo
;;
restart) #on restarting
echo -n "Restarting LampStacks : \n"
$LAMP_HOME/ctlscript.sh restart
echo
;;
*)
echo "Usage : $0 {start|stop|restart}"
exit 1
esac
exit 0
2. 파일 권한 주기
$ chmod 755 /etc/init.d/lampstacks
3. 실행시킬 런 레벨에 심볼릭링크 등록
예시로 2레벨과 3레벨 부팅시 자동 실행 되도록 등록 한다.
각각 /etc/rc2.d/ 와 /etc/rc3.d/ 폴더 아래에서
ln -s /etc/init.d/lampstacks S90lampstacks
심볼릭 링크들은 이름이 [S 혹은 K](숫자){이름} 형태로 등록이 되어 있는데
S는 스크립트의 실행을(start) K는 스크립트의 종료(kill)를 의미하며, 숫자는 해당 스크립트의 실행 순서이다.
폴더내에 그 숫자가 작은 스크립트부터 먼저 실행된다.
리눅스 종료시 해당 스크립트가 종료되도록
/etc/rc0.d/에도 심볼릭 링크를 등록하자
ln -s /etc/init.d/lampstacks K19lampstacks
'OS > Linux' 카테고리의 다른 글
[linux] cron을 이용한 예약 작업 (crontab) (0) | 2013.04.19 |
---|---|
[linux] 리눅스 관리시 자주 쓰이는 명령어 개인적 정리 (0) | 2013.04.16 |
[Linux] BitNami Stack을 이용한 APM 환경 설정 + phpmyadmin (0) | 2013.04.15 |
[Linux] VMplayer 에서 Ubuntu 설치 후 SSH 접속하기 (0) | 2013.04.11 |
[Linux] Vi(Vim) 에디터 명령어 정리 (0) | 2012.12.06 |