끌림

inittab 본문

Programming/Linux

inittab

소닉럽 2011. 5. 19. 11:59
inittab  -  시스템  운영  시작에 사용되는 init 프로세스의 처리 방법을
       지정하고 있는 파일.

DESCRIPTION

       inittab 파일은 시스템이 가동될 때 일반적인 운영 방법의 처리에 대한 것을
       설명하고  있는 파일이다. (예를 들면, /etc/rc, gettys.. 등의 처리). init
       프로세스는 다양한 runlevels을 구별해사용한다. 이 runlevels은 시스템의
       부팅과  종료등에 사용된다.  runlevels 값은 0-6이며, ondemand 위해 A, B,
       C 가 쓰인다.  inittab 파일의 내용은 다음과 같은 형식을 취한다.

              id:runlevels:action:process

       `#'로 시작하는 문장은 주석으로 처리된다.

       id     inittab 안에셈각 항목들에 대한 식별자.  최대  4자리.   (libc의
              버전이  5.2.18보다  낮은  버전이나,  a.out  라이브러리로  컴파일
              했다면, 사용할 수 있는 최대 문자 갯수는 2개다.

              주의: getty나 다른 로그인 프로세스의 사용에섦 id  필드에는  그
              프로세스에 사용하는  tty의 끝자리 숫자가 와야한다.  예를 들면,
              tty11. 그렇지 않으면 바르게 작동되지 않을 수도 있다.

       runlevels
              진행할 runlevel 지정.

       action action 지정

       process
              실행할 프로세스 지정. 이  필드에  `+'  문자가  제일  앞에  오면,
              init는  그 처리과정에utmp, wtmp 처리를 하지 않게 한다.  이것은
              gettys에스스로 utmp/wtmp를  처리할  경우  필요하다.   사용하는
              gettys를 확인하기 바란다.

       action에사용할 수 있는 값은 다음과 같다.

       respawn
              그 프로세스가 종료되면 항상 다시 시작하게 한다.(예, getty)

       wait   지정한   runlevel이  되면  그  프로세스가  실행되고,  init는  그
              프로세스가 종료되기를 기다린다.

       once   지정한 runlevel이 되면 한번만 그 프로세스를 실행한다.

       boot   시스템 부팅 때에 그 프로세스를 실행한다.  이때는  runlevel  값이
              무시된다.

       bootwait
              시스템  부팅  때에  그  프로세스가  실행되는데,  이때  init는 그
              프로세스가 종료되기를 기다린다.(예, /etc/rc).   이때는  runlevel
              값이 무시된다.

       off    아무것도 아니다. 단지 id만 존재하는 것뿐.

       ondemand
              지정한   ondemand   runlevel이  호출  될  때마다  그  프로세스를
              실행한다.   하지만  runlevel  값은  바뀌지  않는다.    (ondemand
              runlevel 값은 'a', 'b', 'c' 이다.)

       initdefault
              시스템  부팅  뒤에  실행될  runlevel을 지정한다.  만약 이 부분이
              없으면, 어떤 runlevel로 실행할 것이지, 콘솔에물어본다. process
              필드는 무시된다.

       sysinit
              시스템  부팅을  할  때에  그  프로세스가 실행된다.  이것은 boot,
              bootwait로 지정된 프로세스보다  먼저  실행된다.  process  필드는
              무시된다.

       powerwait
              init가   SIGPWR  시그날을  받았을  때  그  프로세스가  실행된다.
              SIGPWR은 전원  공급에  문제가  생겼을  때  발생하는  시그날이다.
              Init는 그 프로세스 작업이 끝날 때까지 아무 작업도 하지 않는다.

       powerfail
              powerwait와  같지만, init는 그 프로세스 작업이 끝나기를 기다리지
              않는다.

       powerokwait
              init가 SIGPWR 시그날을 받았을 때 그 프로세스가 실행된다.  OK라는
              단어를  포함하고  있는  /etc/powerstatus  파일이 SIGPWR 시그날을
              제공한다.

       ctrlaltdel
              init가  SIGINT  시그날을  받았을  때  그  프로세스가   실행된다.
              SIGINT는  시스템  콘솔에 누군가가 CTRL-ALT-DEL 글쇠를 뉠뗌때
              발생하는 시스날이다. 이것은  전형적으로  컴퓨터를  리부팅하거나,
              단일 사용자 모드를 사용하기 위해사용된다.

       kbrequest
              콘솔  글쇠판에 특별하게  지정된 글쇠가 뉠좋냅때, 발생하는 한
              시그날을 init가 받았을 때, 그 프로세스를 실행한다.
              이 부분에 대한 이야기는 아직 여기자세히 다루지는 못한다.  좀더
              자세한  정보를  원하면  kbd-x.xx  팻키지의 문섧湧참고한다. (이
              문섦kbd-0.91 팻키지를 바탕으로  쓰여졌다.)   보통,  글쇠지정은
              "Spawn_Console"  action으로  한다.   예를 들어, Alt-읜살표글쇠를
              지정하고 싶으면, 글쇠지정파일(keymap)에 다음 내용을 추가한다.

              alt keycode 103 = Spawn_Console

       하나의  프로세스가  각각  다른  runlevel에섧 같이  실행되게   하려면,
       runlevel  필드에는  다른  runlevel  들을 함께 지정할 수 있다.  예, 123.
       ondemand 값으로 지정한는 A, B, C도  마찬가지다.  action  값이  sysinit,
       boot, bootwait로 지정되어 있으면 그 runlevel 값은 무시된다.

       runleve 값이 바뀌었을 때, 그 새로 바뀐 runlevel에 대한 처리 과정을 따로
       지정하지않았다면, SIGTERM, SIGKILL과 함께, 그 프로세스는 종료된다.

EXAMPLES

       이것은 옛날 linux에사용하던 inittab 파일이다.

              # inittab for linux
              id:1:initdefault:
              rc::bootwait:/etc/rc
              1:1:respawn:/etc/getty 9600 tty1
              2:1:respawn:/etc/getty 9600 tty2
              3:1:respawn:/etc/getty 9600 tty3
              4:1:respawn:/etc/getty 9600 tty4

       이 파일은 시스템이 부팅되는 동안 /etc/rc 파일을 실행하고,  tty1-tty4에       getty를 실행한다.

       다음  부분은 다른 runlevel에셈각 설정들을 지정한다(주석 부분을 참고).

              # 2 단계 정의
              id:2:initdefault:

              # 최우선으로 시스템 초기              si::sysinit:/etc/rc.d/bcheckrc

              # runlevel 0,6은 각각 halt와 reboot, 1은 단일 사용자 모드
              l0:0:wait:/etc/rc.d/rc.halt
              l1:1:wait:/etc/rc.d/rc.single
              l2:2345:wait:/etc/rc.d/rc.multi
              l6:6:wait:/etc/rc.d/rc.reboot

              # "3 finger salute"에어떻게....
              ca::ctrlaltdel:/sbin/shutdown -t5 -rf now

              # runlevel 2&3: 콘솔 getty, level 3: 모뎀 getty
              1:23:respawn:/sbin/getty tty1 VC linux
              2:23:respawn:/sbin/getty tty2 VC linux
              3:23:respawn:/sbin/getty tty3 VC linux
              4:23:respawn:/sbin/getty tty4 VC linux
              S2:3:respawn:/sbin/uugetty ttyS2 M19200

FILES

       /etc/inittab

Comments