이 글의 문맥을 분석하여 이글루스에 있는 많은 글 중에서 관련성이 높은 글을 자동으로 검색해 낸 결과입니다.
제갈장비
dojeun.egloos.com
이글루스 | 로그인

라면 한그릇 드세요.. ㅋㅋ
by 제갈장비
카테고리
전체
제갈장비-Linux
제갈장비-TOMCAT
제갈장비-JAVA
--------------------
문서-Linux
문서-Powerbuilder
문서-JAVA
문서-ASP
문서-하드웨어
문서-EDPS
문서-MSSQL
--------------------
TIP-JAVA
TIP-Perl
TIP-ASP
TIP-Powerbuilder 01
TIP-Javascript
TIP-Excel
TIP-XML
TIP-MSAccess
TIP-PostgreSql
TIP-Windows
TIP-Linux
TIP-HTML
TIP-TOMCAT
--------------------
ETC
Secret
Util-Japan
미분류
최근 등록된 덧글
잘읽어 보았습니다. 그런..
by 이윤철 at 11/07
1000 666
by qhrlfeh77 at 05/21
123
by qhrlfeh77 at 05/21

by qhrlfeh77 at 05/21
감사합니다!! HashSet..
by 세레네이 at 04/06
찾고 있었던 자료인데 ..
by 나그네 at 01/09
감사합니다. 잘 보았습..
by 졸면죽는다 at 10/28
좋은 정보 정말 감사합니..
by 강성훈 at 10/22
좋은글 퍼가겠습니다.
by 정의진 at 09/29
이제야 봤습니다. iText..
by 제갈장비 at 08/09
이글루 파인더
Powered by egloos
rss

skin by 이글루스
2006년 08월 08일
2006.08.08(화) - init 프로세스 분석기#2
집에 있는 책을 뒤적이다가

며칠전 공부한 /etc/inittab 에 대한 설명을 발견했다.

그리고

궁금하던 부분이 많이 풀렸기 때문에 여기 메모로 남긴다.

init 프로그램의 종류는 2종류인데

Unix Systems V 방식의 init와

BSD 방식의 init가 있다.

RedHat 배포판은 Unix Systems V 방식을 사용한다.

그러므로 내가 사용하고 있는 것도 Unix System V 방식이다.

차이점은 Unix System V방식은 실행레벨을 사용하지만

BSD는 사용하지 않는다는 것이다.

/etc/inittab 파일의 각각의 라인에 대한 설명은

읽어보고 실행해 봐서 이해가 갔는데

문장의 뜻을 몰랐었다.

이 파일의 문장은 각각 ":"로 구분되어진 필드로 이루어지고 각 필드가

뜻하는 의미가 있었다.

순서는

id : runlevels : action : process [arguments]

이다.

처음 id 는 그냥 라벨같은 것으로서 문장을 구별하기 위한 것이다.

길이는 2~4글자까지.

두번째 runlevels는 이 항목이 실행될 레벨이 무엇인지 나타낸다.

세번째의 action 은 init프로세스가 실행해야 할 동작이다.

마지막의 process에는 실행해야할 프로세스를 정의한다.

그리고 실행레벨을 뜻하는 것에 0~6 이외에

S,s : 실행 레벨 1에서 실행되는 스크립트가 내부적으로 사용한다.

a,b,c : On-demand 실행 레벨. 보통 사용되지 안음.

이 있었다.

그리고 Action에 대한 설명도 알았다.

이 부분이 제일 궁금했었다.

표로 정리했다. 아니 베꼈다...ㅋㅋ

네이버의 글쓰기에 테이블 형식으로 글을 넣는 기능정도는

있으면 좋겠다.

가끔 너무 불편하다.

지금도 표 만드느라 메모장으로 열심히 만들고 있는 중이다.

Action설명
Respawn프로세스가 종료될 때마다 재실행된다.
Wait프로세스가 실행되면 init는 프로세스가 종료될 때까지 기다린 후 다음 작업으로 넘어간다.
Once프로세스가 한번만 실행된다.
Boot시스템이 부팅되는 동안 프로세스가 실행되며, init는 실행 레벨 필드는 무시한다.
Bootwait시스템이 부팅되는 동안 프로세스가 실행되며, init는 프로세스가 종료될 때까지 기다린다.
off아무런 동작도 발생하지 않는다. 설정라인을 지우지 않고도 그 내용이 실행되지 않도록 할 때 사용된다.
Off대신 #를 라인의 앞에 붙여서 주석으로 만들어도 그 라인이 실행되지 않는다.
ondemand실행 레벨이 a, b, c인 경우에만 유용하다. init가 이 세 개의 실행 레벨과 함께 호출될 때만 프로세스가 작동한다. 보통 잘 쓰이지 않는다.
initdefault시스템의 기본 실행 레벨을 설정한다. 이 때 프로세스 필드는 무시된다.
sysinit시스템 부팅되는 동안 한번만 프로세스가 실행된다. Sysinit는 boot나 bootwait 보다 우선권을 가진다.
powerwaitinit가 SIGPWR 신호를 받는 경우에만 프로세스가 가동된다. 전원에 문제가 있을 때 보통 UPS 모니터링 소프트웨어가 이를 인식하여 init에게 신호를 해준다. 이런 경우 init는 프로세스가 종료될 때까지 기다린다.
powerfailpowerwait와 같지만, init는 프로세스가 완결될 때까지 기다리지 않는다.
powerokwaitinit가 SIGPWR 신호를 받고 /etc/pwerstatus라는 텍스트 파일에 OK라는 문자열이 있을 때 프로세스가 실행된다. 일반적으로, UPS 모니터링 프로그램이 이 파일을 생성하며 SIGPWR 신호를 init에게 보내어 전원상의 문제가 해결되었음을 알려준다.
ctrlaltdelinit가 SIGINT 신호를 받으면 프로세스가 실행된다.
kbrequestinit가 키보드 관리자로부터 KeyboardSignal을 받는 경우에 프로세스가 실행된다.


자~~ 그럼 이 정보를 갖고 지난번에 했던 코드 몇개 분석 해보자

다시

형식을 써놓고

id : runlevels : action : process [arguments]

id:3:initdefault:

- 우선 id = id 는 라벨이고
- runlevels = 3은 실행레벨 3이다.
- action = initdefault 은 위의 표에 따라 시스템의 기본 실행 레벨을 설정한다.
- process = 없다.initdefault는 process를 무시하기 때문이다.

이제 확실히 이해가 간다.

하나 더 해보자.

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

- id = ca
- runlevels = 없다. 없는건 공통이라는 얘기겠지?  아마도....
- action = ctrlaltdel
- process = /sbin/shutdown
- [arguments] = -t3 -r now

모든 레벨에서 실행되고

간단히 Ctrl + Alt + Del 이 눌렸다는 신호가 오면

/sbin/shutdown을 실행한다.

이 때 인수는 -t3 -r now 이다.

확실히 아니까 불안하지 않고 재밋다.

하나 더 볼까?

1:2345:respawn:/sbin/mingetty tty1
- id = 1
- runlevels = 2345
- action = respawn
- process = /sbin/mingetty
- [arguments] = tty1

라벨은 1이라고 주고 2,3,4,5 실행레벨에서만 실행된다.
respawn 이므로 프로세스가 종료될 때마다 재실행된다.
/sbin/mingetty를 실행하고 인수는 tty1이다.
근데 mingetty 명령의 tty1은 무슨 뜻인지 설명해 봐라...

.......


정확히 모른다.

가상콘솔을 가능하게 하는거라 했는데......

우선 넘어가자......

근데...

여기서 이 가상콘솔 부분을 전부 주석처리하면 어떻게 될까?

부팅이 되도 콘솔화면이 하나도 안뜰까?

내일 해 보자.....
# by 제갈장비 | 2006/08/08 23:50 | 제갈장비-Linux | 트랙백 | 덧글(0)
트랙백 주소 : http://dojeun.egloos.com/tb/314954
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지 다음 페이지 ▶

이글루링크 추가하기
()을(를)
이글루링크로 추가하시겠습니까? 추가하시려면 그룹선택을 하세요.
(그룹선택 하지 않는 경우, 최상단 목록에 추가됩니다.)
그룹선택 :
이글루링크 취소