inittab 파일

용도

초기화 처리를 제어합니다.

설명

/etc/inittab 파일은 일반 프로세스 디스패처로서 init 명령의 역할에 스크립트를 제공합니다. 대부분의 init 명령 프로세스 디스패치 활동을 구성하는 프로세스는 개별 터미널 행을 시작하는 /etc/getty 행 프로세스입니다. init 명령이 일반적으로 작업 지정하는 다른 프로세스는 디먼 및 쉘입니다.

/etc/inittab 파일은 위치 종속적이고 다음 형식을 갖는 항목으로 구성됩니다.

Identifier:RunLevel:Action:Command
주: 콜론 문자 (:) 는 주석 문자뿐만 아니라 분리문자로 사용됩니다. inittab 항목을 주석 처리하려면 항목의 시작 부분에 : 를 추가하십시오. 예를 들어 다음과 같습니다.
:Identifier:RunLevel:Action:Command

각 항목은 줄 바꾸기 문자로 구분됩니다. 줄 바꾸기 문자 앞에 오는 백슬래시 (\) 는 항목의 연속을 표시합니다. /etc/inittab 파일의 항목 수에는 최대 항목 크기 이외의 한계가 없습니다. 최대 항목 크기는 1024자입니다. 입력 필드는 다음과 같습니다.

ID
오브젝트를 고유하게 식별하는 문자열 (하나 이상의 문자).
RunLevel
이 항목을 처리할 수 있는 실행 레벨입니다. 실행 레벨은 시스템의 프로세스 구성에 효과적으로 대응합니다. init 명령으로 시작되는 각 프로세스에는 프로세스가 존재할 수 있는 하나 이상의 실행 레벨이 지정됩니다. 실행 레벨은 0-9사이의 숫자로 표시됩니다. 예를 들어, 시스템이 실행 레벨 1에 있는 경우 runlevel 필드에 1이 있는 항목만 시작됩니다. 실행 레벨을 변경하기 위해 init 명령을 요청할 때 대상 실행 레벨에 대한 runlevel 필드에 항목이 없는 모든 프로세스는 경고 신호 (SIGTERM) 를 수신합니다. 프로세스가 강제 종료 신호 (SIGKILL) 에 의해 강제로 종료되기 전에 20초의 유예 기간이 있습니다. runlevel 필드는 0-9의 조합으로 둘 이상의 실행 레벨을 선택하여 프로세스에 대한 다중 실행 레벨을 정의할 수 있습니다. 실행 레벨이 지정되지 않은 경우 프로세스는 모든 실행 레벨에서 유효한 것으로 가정됩니다.

runlevel 필드에는 실제 실행 레벨이 아닌 경우에도 세 개의 다른 값 ( a, bc) 이 표시됩니다. runlevel 필드에 이러한 문자가 있는 항목은 telinit 명령이 실행되도록 요청하는 경우에만 처리됩니다 (시스템의 현재 실행 레벨에 관계없이). init 명령이 실행 레벨 a, b또는 c를 입력할 수 없다는 점에서 실행 레벨과 다릅니다. 또한 이러한 프로세스의 실행에 대한 요청은 현재 실행 레벨을 변경하지 않습니다. 또한 a, b또는 c 명령으로 시작된 프로세스는 init 명령이 레벨을 변경할 때 종료되지 않습니다. /etc/inittab 파일의 해당 행이 action 필드에서 off로 표시되거나, 해당 행이 /etc/inittab에서 완전히 삭제되거나, init 명령이 단일 사용자 모드로 전환되는 경우에만 kill됩니다.

조치
identifier 필드에 지정된 프로세스를 처리하는 방법을 init 명령에 알립니다. 다음 조치는 init 명령에 의해 인식됩니다.
respawn
프로세스가 없으면 프로세스를 시작하십시오. 종료될 때까지 기다리지 마십시오 ( /etc/inittab 파일 스캔 계속). 프로세스가 종료되면 프로세스를 다시 시작하십시오. 프로세스가 있으면 아무 것도 수행하지 않고 /etc/inittab 파일을 계속 스캔합니다.
wait
init 명령이 항목의 실행 레벨과 일치하는 실행 레벨을 입력하면 프로세스를 시작하고 종료될 때까지 기다리십시오. init 명령이 동일한 실행 레벨에 있는 동안 /etc/inittab 파일의 모든 후속 읽기로 인해 init 명령이 이 항목을 무시합니다.
한 번
init 명령이 항목의 실행 레벨과 일치하는 실행 레벨을 입력하면 프로세스를 시작하고 종료를 기다리지 않습니다. 프로세스가 종료되면 프로세스를 다시 시작하지 마십시오. 시스템이 새 실행 레벨을 입력하고 프로세스가 이전 실행 레벨 변경에서 계속 실행 중인 경우 프로그램이 다시 시작되지 않습니다. init 명령이 동일한 실행 레벨에 있는 동안 /etc/inittab 파일의 모든 후속 읽기로 인해 init 명령이 이 항목을 무시합니다.
부트
init 명령이 시스템 시작 중에 /etc/inittab 파일을 읽을 때인 시스템 부트 중에만 항목을 처리합니다. 프로세스를 시작하고 종료를 기다리지 말고 프로세스가 종료되면 프로세스를 다시 시작하지 마십시오. 명령어를 의미있게 하려면 실행 레벨이 디폴트이거나 부트 시 init 명령의 실행 레벨과 일치해야 합니다. 이 조치는 시스템의 하드웨어 재부팅 후 초기화 기능에 유용합니다.
bootwait (bootwait)
시스템이 부팅된 후 init 명령이 단일 사용자에서 다중 사용자 상태로 처음 이동할 때 항목을 처리하십시오. 프로세스를 시작하고 종료될 때까지 기다리십시오. 종료되면 프로세스를 다시 시작하지 마십시오. initdefault 가 2이면 부트 직후에 프로세스를 실행하십시오.
전원 실패 (powerfail)
init 명령이 전원 실패 신호 (SIGPWR) 를 수신하는 경우에만 이 항목과 연관된 프로세스를 실행하십시오.
전원 대기 (powerwait)
init 명령이 전원 실패 신호 (SIGPWR) 를 수신한 경우에만 이 항목과 연관된 프로세스를 실행하고, /etc/inittab 파일을 계속 처리하기 전에 종료될 때까지 기다리십시오.
끄기
이 항목과 연관된 프로세스가 현재 실행 중인 경우 경고 신호 (SIGTERM) 를 전송하고 종료 신호 (SIGKILL) 로 프로세스를 종료하기 전에 20초동안 기다리십시오. 프로세스가 실행 중이 아니면 이 항목을 무시하십시오.
ondemand
이 조치가 실행 레벨이 아닌 a, b또는 c 값에 적용된다는 점을 제외하면 respawn과 기능적으로 동일합니다.
초기화 기본값
이 조치가 있는 항목은 init 명령이 처음 호출될 때만 스캔됩니다. init 명령은 이 항목이 있는 경우 이 항목을 사용하여 처음에 입력할 실행 레벨을 판별합니다. RunLevel 필드에 지정된 최상위 실행 레벨을 취하고 초기 상태를 사용하여 실행합니다. runlevel 필드가 비어 있는 경우 이는 0123456789로 해석되므로 init 명령은 실행 레벨 9를 입력합니다. 또한 init 명령이 /etc/inittab 파일에서 initdefault 항목을 찾지 못하면 부트 시 사용자로부터 초기 실행 레벨을 요청합니다.
시스템 초기화
이 유형의 항목은 init 명령이 로그인하기 전에 콘솔에 액세스하려고 시도하기 전에 실행됩니다. 이 항목은 init 명령이 실행 레벨 질문을 하려고 시도할 수 있는 장치를 초기화하는 데에만 사용될 것으로 예상됩니다. 이러한 항목이 실행되고 계속하기 전에 대기합니다.
명령
실행할 쉘 명령입니다. 전체 command 필드 앞에는 다음과 같은 접두부가 붙습니다.exec그리고 분기된shassh -c exec command. 모든 법률sh구문이 이 필드에 표시될 수 있습니다. # 주석 구문을 사용하여 주석을 삽입할 수 있습니다.

getty 명령은 inittab 파일에서 명령 앞에 나타나는 명령의 출력 위에 겹쳐씁니다. 이러한 명령의 출력을 부트 로그에 기록하려면 해당 출력을 alog -tboot 명령으로 파이프하십시오.

initinittab 항목을 처리하는 동안 stdin, stdout및 stdferr 파일 설명자를 사용할 수 없습니다. stdout 또는 stderr에 기록하는 항목은 출력을 파일 또는 /dev/console로 경로 재지정하지 않으면 예측 가능하게 작동하지 않을 수 있습니다.

다음 명령은 /etc/inittab 파일의 레코드를 수정하기 위해 지원되는 유일한 방법입니다.

명령 용도
칩탭 /etc/inittab 파일에서 레코드를 변경합니다.
lsitab /etc/inittab 파일의 레코드를 나열합니다.
mkitab /etc/inittab 파일에 레코드를 추가합니다.
rmitab /etc/inittab 파일에서 레코드를 제거합니다.

  1. 다음을 시작하려면ident모든 실행 레벨에서 처리하려면 다음을 입력하십시오.
    ident:0123456789:Action:Command
  2. 다음을 시작하려면ident실행 레벨 2에서만 처리하려면 다음을 입력하십시오.
    ident:2:Action:Command
  3. 다음에 대해 실행 레벨 0, 3, 6-9를 사용 불가능하게 하려면ident프로세스, 입력:
    ident:1245:Action:Command
  4. 실행 레벨 2에서 rc 명령을 시작하고 해당 출력을 부트 로그에 전송하려면 다음을 입력하십시오.
    rc:2:wait:/etc/rc 2>&1 | alog -tboot > 
    /dev/console

파일

항목 설명
/etc/inittab inittab 파일의 경로를 지정합니다.
/usr/sbin/getty 터미널 회선을 표시합니다.