RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'initab'에 해당되는 글 1

출처 : 대전국제IT교육센터 정성재 강사

 

1. init프로세스
Linux시스템에서 부팅시에 가장 먼저 실행되는 프로세스로 시스템 부팅중에 자신을 복제하여 다른
프로세스들을 생성한다. init프로세스는 /etc/inittab파일에 설정을 읽어들여 작동한다. 프로세스
ID(PID)는 1번을 부여받고 명령어로서의 init 파일 위치는 /sbin에 있다.

2. /etc/inittab
(1) 설명: 부팅시에 init프로세스가 작동하면서 참조하는 파일이다.
(2) 역할
   1) 시스템의 런레벨을 정의한다.
   2) 시스템 초기화관련된 스크립트들이 위치한다.
   3) UPS관련 스크립트가 위치한다.
   4) 가상콘솔과 관련된 내용을 정의한다.
   5) 런레벨 5인경우 X윈도우 초기화관련 내용도 정의한다.
(3) inittab파일의 필드 : /etc/inittab파일은 콜론(:)으로 구분된 네 개의 필드로 구성되어 있다.
   1) 기본구성
     id:runlevel:action:process
       => id       각 항목을 구별하기 위한 ID
          runlevel 실행 레벨을 표시
          action   init이 항목을 어떻게 다룰 것인가를 나타낸다.
          process  이 항목에 대해 init이 실행할 명령이다.
   2) action필드의 주요 키워드
     respawn : 프로세스가 종료될 때마다 재실행한다.
     wait : 프로세스가 종료될 때까지 기다린 후 다음 작업을 수행한다.
     sysinit : 시스템이 부팅되는 동안 한번만 프로세스가 실행된다. boot나 bootwait보다 우선함.
     initdefault : 시스템의 기본 실행 레벨을 설정한다.
     boot : 시스템이 부팅되는 동안 프로세스가 실행되며, init은 실행레벨 필드를 무시한다.
     bootwait : 시스템이 부팅되는 동안 프로세스가 실행되며, init은 프로세스가 종료될 때까지
               기다린다.
     once : 프로세스가 한번만 실행된다.
     off : 프로세스를 실행하지 않는다. off대신 라인앞에 #을 붙여 주석처리한 것과 같다.
(4) 주요설정
   1) 런레벨설정
     # 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:3:initdefault:
       => 부팅의 레벨을 지정하는 부분이다.
         -런레벨 0은 시스템종료시에 사용된다.(기본값으로 설정해서는 안됨)
         -런레벨 1은 싱글유저 모드시에 사용한다. 아이디와 패스워드를 묻지않고 root 로그인한
         상태가 된다.
         -런레벨 2는 NFS를 지원하지 않는 다중사용자모드이다.(네트워크설정이 안되었으면 런레벨
         3과 같다.)
         -런레벨 3은 네트워킹을 지원하는 다중사용자모드이다. 보통 기본값으로 설정한다.
         -런레벨 4는 사용하지 않지만, 사용자가 임의로 정의해서 쓸 수 있다.
         -런레벨 5는 X-window로 부팅시키는 레벨이다.
         -런레벨 6은 시스템이 재부팅시에 사용한다.(기본값으로 설정해서는 안됨)
   2) 시스템 초기화
     si::sysinit:/etc/rc.d/rc.sysinit
       => init 프로세스가 가장 먼저 실행시키는 명령이다. 시스템초기화시 단 한번 실행되는 초기
         화 스크립트이다.
(참고) rc.sysinit 스크립트의 역할
   1. 기본적인 경로설정
   2. /etc/sysconfig/network 파일이 존재하면 그 스크립트 실행
   3. 키맵의 로딩
   4. 시스템 폰트의 로딩
   5. 스왑영역의 활성화
   6. 디스크검사(fsck)
   7. /proc파일시스템의 마운트
   8. 루트 파일시스템의 rw모드로 다시 마운트
   9. /etc/HOSTNAME 파일의 설정
   10. /etc/mtab파일에 루트와 /proc파일시스템의 엔트리 추가
   11. 커널 모듈로 로드
   12. 시스템 시간 설정

   3) 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
       => 각 런레벨 별로 지정된 시작 스크립트를 나타낸다. 각 실행레벨에 대해서 어떠한 명령을
         수행할 것인지를 정한다. 각 런레벨별로 지정된 스크립트는 그 실행이 종료될 때까지는
         init프로세스가 진행하지 않고, 대기하라는 의미의 wait키워드가 지정되었다.
   4) # Things to run in every runlevel.
      ud::once:/sbin/update
       => /sbin/update명령은 아직 디스크에 쓰여지지 않고 메모리상에 버퍼링되어 있는 내용을
         디스크에 쓰도록 하는 명령이다.
   5) # Trap CTRL-ALT-DELETE
      ca::ctrlaltdel:/sbin/shutdown -t3 -r now
       => ctrl+alt+del키를 누를 때 실행하는 명령이다. 현재 설정은 3초후에 재부팅하게 되어있다.
   6) # 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"
       => UPS를 사용하는 경우 해당하는 항목으로 power fail이 될 경우, 시스템을 셧다운시키며,
         power가 다시 복구되었을 때는 셧다운을 취소시킨다.
   7) # 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
       => 가상 콘솔에 대한 설정부분으로 1번부터 6번까지 6개의 가상콘솔이 기본으로 설정되어
         있다. 1번콘솔은 실행레벨이 12345에서 실행되도록 하고, 나머지 콘솔은 2345에서 실행되도
         록 설정이 되어있다. 이것은 보안상 실행레벨1은 오직 첫번째 콘솔하나만 사용하도록 한 것
         이다. 특정 콘솔을 사용하지 못하도록 할 경우 해당 콘솔라인을 주석처리(라인 앞에 '#'
         표시)하면 된다. 작업을 마치고 로그아웃을 하면 다시 'login:' 프롬프트가 뜨는데 이는
         login: 프롬프트를 보여주는 mingetty 프로그램이 죽으면 다시 복제하여 계속실행하도록
         respawn으로 action이 설정되어 있다.
   8) # Run xdm in runlevel 5
      # xdm is now a separate service
      x:5:respawn:/etc/X11/prefdm -nodaemon
       => initdefalut가 실행레벨5인 경우 x-window로 login한다. GUI기반의 login화면을 관리하는
         디스플레이 매니저에 대한 설정을 한다. xdm, gdm, kdm중 하나가 선택되어 실행된다.

3. 부팅관련 유틸리티
(1) ntsysv
   1) 설명: RedHat 5.0부터 지원되는 텍스트기반 그래픽 설정 프로그램으로 부팅 중 자동으로 실행
           되는 서비스를 쉽게 설정할 수 있다. 명령행에서 옵션없이 ntsysv를 실행하면 현재 구동
           된 실행레벨에 대한 설정을 한다.
   2) 사용법
     ntsysv [option]
   3) option
     --level 실행레벨 : 특정 실행레벨을 편집한다.
(2) chkconfig
   1) 설명: 텍스트 기반의 명령형 프로그램으로 실행레벨에 따른 서비스의 on/off 설정리스트를
           볼 수 있고, 현재는 주로 xinetd 데몬안에 있는 서비스를 즉시 on 또는 off 시킬 경우에
           사용한다.
   2) 사용법
     chkconfig option [service]
   3) option
     --list : 각 실행레벨에서의 서비스 설정상태를 보여준다.
     --add 서비스 : 서비스를 추가한다.
     --del 서비스 : 서비스를 삭제한다.
     --level 레벨 서비스 on/off/reset : 해당레벨에서 특정서비스의 상태를 설정한다.
   4) 사용예
     ㄱ. [root@www /root]# chkconfig --list
         atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
         irda            0:off   1:off   2:off   3:off   4:off   5:off   6:off
         nscd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
         rwhod           0:off   1:off   2:off   3:off   4:off   5:off   6:off
          => 각 실행레벨에서의 서비스 설정 상태를 보여준다.
     ㄴ. [root@www /root]# chkconfig --list named
         named           0:off   1:off   2:off   3:off   4:off   5:off   6:off
          => named서비스의 상태를 본다.
     ㄷ. [root@www /root]# chkconfig --level 35 named on
          => 실행레벨 3,5에 대해서 named서비스를 on한다.
     ㄹ. [root@www /root]# chkconfig --level 5 --del adsl
          => 실행레벨 5에서 adsl서비스를 삭제한다.
   5) 참고
    ㄱ. 설명: 슈퍼데몬인 xinetd에 속해 있는 서비스도 가능하다.
    ㄴ. 사용예
       chkconfig telnet on
        => telnet 서비스를 on 시킨다.
(3) tksysv : GNOME 기반의 GUI툴로 실행레벨 2, 3, 4, 5에 대한 설정을 할 수 있다. 레드햇 7.X
             버전까지만 지원한다.
(4) ksysv : KDE기반의 GUI툴로 실행레벨 0~6까지 설정할 수 있다. 레드햇 8 까지만 지원한다.
(5) servceconf : 레드햇 8 버전부터 지원한다. redhat-config-services 라고 입력해도 된다.

Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
OpenSource (1)
Tips! (1)
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31