Provided by: manpages-ko_20050219-2_all bug

NAME

       init, telinit - 초기프로세스 제어

SYNOPSIS

       /sbin/init [ -t sec ] [ 0123456SsQq ]
       /sbin/telinit [ -t sec ] [ 0123456sSQqabc ]

DESCRIPTION

   Init
       Init   프로세스는   모든   프로세스의  아버지다.   이것은  /etc/inittab
       파일(inittab(5) 참조)을 찾아, 지정한 스크립트를 실행한다.  이  파일에는
       사용자가  접속할  수  있도록 getty 처리를 하는데, 이때 init가 사용된다.
       또한  이  파일은  특정  시스템에 필요한,  자동으로  실행되어야   하는
       프로세스들을 제어한다.

       runlevel이란  존재하는  프로세스의  선택된  그룹만을  허락하는 시스템의
       소프트웨어  환경이다.   각각의  runlevelinit에   의해   생성되는
       프로세스들은 /etc/inittab 파일에정의된다.  Initrunlevel이 0부터 6,
       S 또는 s인 여덟 종류 중 하나에 존재 할 수 있다.  runlevel  값은  시스템
       관리자가   /sbin/telinit를   실행해  바뀐다.    telinit는  runlevel을
       바꾸어라는 신호를 init에게 알린다.

       커널 부팅이 끝나면, 마지막으로  init가  실행되는데,  이때  /etc/inittab
       파일을 찾아 그 안에 정의된 initdefault (inittab(5) 참조) 부분을 읽는다.
       그리고  그곳에  정의된  runlevel을  현재  level로  하여  나머지  작업을
       계속한다.  이때, /etc/inittab 파일이 없거나, initdefault 정의가 없으면,
       콘솔에직접 runlevel을 입력해야 한다.

       runlevelSs이면, 단일 사용자 모드가 진행되면, 이때는 /etc/initttab
       파일이  필요없다.   단일 사용자 모드에섦/dev/console에 의해 /bin/sh가
       호출된다.

       단일  사용자  모드가  되면,  init는  /etc/ioctl.save에 지정한  콘솔의
       ioctl(2)을  읽는다.  이때,  이  파일이 없으면, init는 라인을 9600 baud,
       CLOCAL로 초기한다.  단일 사용자 모드를  떠나면,  init는  현재  콘솔의
       ioctl  설정을 /etc/ioctl.save 파일에 저장하고, 다음 단일 사용자 모드에       다시 사용한다.

       다중 사용자 모드로 들어가게 되면, init는 먼저  사용자가  로그인  할  수
       있는 마운트된 파일 시스템의 사용을 위해 boot, bootwait 부분을 처리하고,
       다음, 나머지 부분들을 처리한다. (inittab에정의되고 있음)

       한 새로운 프로세스를 시작할 때는  먼저  /etc/initscript  파일이  있는지
       확인을 하고, 있다면, 그 스크립트에 따라 프로세스를 시작한다.

       각  하위  프로세스들이  끝날  때,  init는  /var/run/utmp, /var/log/wtmp
       파일있다면, 그 파일에  그  프로세스들의  마침  정보들(언제  끝났고,  왜
       끝났고... 이런 정보)을 기록한다.

       지정한  그  프로세스를  모두  실행  한  뒤,  init는  그 프로세스를 마칠
       의존적인 프로세스 중 하나나,powerfail 시그날이나,   시스템의  runleve을
       바꾸는  /sbin/telinit에 보내는  시그날을  기다린다.   이 셋 중 하나가
       발생했을 때,  init/etc/inittab  파일을  다시  읽는다.  이  파일에는
       언제든지  새로운 항목이 추가 될 수 있다.  하지만 그 효과는 위에언급한
       그 세가지 경우가 되어 init가 그 파일을 읽을  때  나타낫  이런  상황이
       아닌데도 /etc/inittab 파일을 읽어야 할 경우에는 Qq 명령을 사용한다.

       만약 단일 사용자 모드가 아닌데,  powerfail  시그날이  발생하면,  init/etc/inittab 파일에특별하게 지정된
        powerfail 부분을 실행한다.

       runlevel이 바뀌었을 때, 그 새로운 runlevel에 대해특별히 대처하지 않게
       지정된 모든 프로세스에게 init는 경고 시스날인 SIGTERM을 보낸다.  그리고
       나 5초동안  기다리고는  종료  시그날인  SIGKILL  을 그 프로세스들에게
       보낸다.   이때,  init는  그  프로세스들을  위해  원래  만들어진.   같은
       프로세스  그룹  안에  남아  있다고 가정한다는 것을 주의하라.  만약 어떤
       프로세스가 자신의  프로세스  그룹을  바꾸었다면,  이  프로세스는  위에       언급한   시그날들을  받지  못한다.   이런  프로세스들은  사용자가  직접
       종료해야한다.

   telinit
       /sbin/telinit/sbin/init에 링크되어 있는 명령이다.  이것은 한  문자의
       명령행 인자와 적당한 작업을 수행할 signals init를 가진다.  여기사용할
       수 있는 한 문자 명령행 인자는 다음과 같다.  /sbin/telinit:

       0,1,2,3,4,5,6
              /sbin/init에게 runlevel이 바뀌었음을 알린다.

       a,b,c  /etc/inittab 파일에지정한  a,b,c  runlevel  부분을  처리하라고
              init에게 알린다.

       Q or q /sbin/init/etc/inittab 파일을 다시 읽도록 지시한다.

       S or s /sbin/init에게 단일 사용자 모드로 전환하라고 알린다.

       또한  init가  TERM 시그날을 보내고 나몇 초를 기다린 후, KILL 시그날을
       프로세스들에게 보낼지를 지정할 수 있다.  초기값은 5초다. 이 것은 -t sec
       옵션으로 지정한다.

       /sbin/telinit 명령은 단지 시스템 관지자에 의해섯호출 될 수 있다.

RUNLEVELS

       init와  관계되는  runlevel은 0, 1, 6이다. 0은 시스템 종료에, 6은 시스템
       재시동(reboot)에, 1은 단일 사용자 모드에 사용된다.  runlevel  S는  바로
       처리  되지  않고,  runlevel 1로 바뀌었을 때 처리 되는 부분에처리된다.
       자세한 이야기는 shutdown(1), inittab(5) 매뉴얼 페이지를 참조한다.

       runlevel 7-9도 사용할 수 있지만,  이  문셀【는  다루지  않는다.  이것은
       "전통적인"  Unix 환경에섦사용되지 않는 값들이기 때문이다.  일반적으로
       runlevel Ss 값이 runlevel 7-9와 같은 역활을 한다. 이것은 단지 하나의
       별칭으로   사용된다.   이  풀그림  제작자가  sysvinit를  만들때  사용한
       시스템에이 값들을 사용하기 때문에 남겨두었을 뿐이다.

FILES

       /etc/inittab
       /etc/initscript
       /dev/console
       /etc/ioctl.save
       /var/run/utmp
       /var/log/wtmp
       /dev/initctl

ENVIRONMENT

       init에섦다음과 같은 환경 변수를 사용한다.

       PATH   초기값: /bin:/usr/bin:

       INIT_VERSION
              init의 버전 정보. 이것은 init 스크립트 작성에요용하게  쓰인다.

       RUNLEVEL
              시스템의 현재 runlevel.

       PREVLEVEL
              이전 runlevel.(runlevel 전환 때에 요용하게 쓰인다.)

BOOTFLAGS

       부트  관리자(예,  LILO)에 다음 인자들을 사용할 수도 있고, 생략할 수도
       있다.

       S, single
            단일 사용자 모드로 부팅한다.   이  모드에섦 /etc/inittab  파일을
            검사하고,  단일  사용자  모드의  쉘이 시작되기 전에, rc 스크립트가
            일반적으로 실행된다.

       1-5  지정한 runlevel로 부팅한다.

       -b, emergency
            다른 어떠한 시작 스크립트 없이 바로 단일 사용자 모드로 부팅한다.

CONFORMING TO

       Init는   System   V   init와   호환이   된다.    이것은    /etc/init.d,
       /etc/rc{runlevel}.d   경로안에   있는  스크립트들을  실행한다.   자신의
       시스템에 적용하려면,  먼저  /etc/init.d  경로  안에  있는  스크립트들이
       어떻게 작동할 것인지에 대해이야기하고 있는 README 파일을 읽어 보라.

WARNINGS

       init는  어떤  프로세스가  실행될 당시에 소속되어 있는 프로세스 그룹안에
       계속 있다고 가정한다.  그렇기 때문에, 만약 그 프로세스가 그  그룹에  더
       이상  소속되지 않는다면, runlevel이 바뀌었어 그 프로세스를 마쳐야 할때,
       제대로 마칠수 없게 된다.

DIAGNOSTICS

       만약 2분 동안 10번 이상 init가 계속 해호출 된다면, init는 이런 상태를
       오류로 가정한다. 그리고는 시스템 콘솔에 오류 메시지를 보여준다. 그리고,
       5분간 프로세스 생성을 중지하고, 발생되는 시그날을 받는다. 이것은 시스템
       리소스의 낭비를 막기 위한 조치이다.

AUTHOR

       Miquel  van  Smoorenburg  (miquels@cistron.nl),  initial manual page by
       Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de).

SEE ALSO

       getty(1), login(1), sh(1), who(1),  shutdown(1),  kill(2),  inittab(5),
       initscript(5), utmp(5)

                                 May 06, 1996                          INIT(8)