질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

특정 실행레벨에서 Kill 시킨다는 것은 구체적으로 어떤 것을 의미하는 건가요?

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

1번답변 : k로 시작하는것은 시스템 shutdown 시에 실행됩니다.
아파치 같은 데몬이 실행되고 있는 상태에서 시스템이 shutdown 될때 실행되고 있는 데몬을 안전하게 STOP 시키기 위해서 입니다. 데몬프로세스의 비정상적인 종료는 가끔 큰 재앙을 불러 일으킵니다.

2번답변 : init.d 안의 파일들은 특별한 포멧을 가진 파일들입니다.
chkconfig: 345 85 15
이 부분은 실행 레벨 3,4,5 로 부팅될때 해당 데몬또는 실행파일이 85라는 우선순위로 실행하고 시스템 종료를 할때 15 라는 우선순위로 종료하게 하라는겁니다.
즉 85 라는것은 운선순위이지 절대적인 실행순서가 아닙니다. 85보다 작은 우선순위로 설정된 다른 실행프로세스들이 없으면 85 우선순위를 가진 init 스크립트가 첫번째로 실행되는겁니다. 이에 대한 이해는 chkconfig 라는 명령에 대해 man 페이지를 참조하시면 이해하기 쉬우실겁니다.

3번답변 : ntsysv 명령에 나타나는 리스트들은 chkconfig 라는 도구로 관리합니다.
ntsysv 명령에 나타나는 리스트에 추가, 삭제등을 할때 chkconfig 라는 도구를 쓰면 됩니다.

간단히 예제를 하나 적으면

[root@rootman root]# vi /etc/init.d/test
위의 명령으로 vi 편집상태에서 아래의 내용을 입력하세요.
#!/bin/bash
# chkconfig: 35 77 35
# description: This is Test Script

위의 3줄을 작성하고 저장하고 vi를 종료합니다.

[root@rootman root]# chkconfig --add test

이렇게 하면 ntsysv 명령의 리스트에 추가된 것을 보실수 있을겁니다.

위의 chkconfig 라는 명령으로 /etc/rc.d 디렉토리 새로 생성된 파일 리스트는 다음과 같습니다.
[root@develop rc.d]# find ./ -name *test*
./rc0.d/K35test
./rc1.d/K35test
./rc2.d/K35test
./rc3.d/S77test
./rc4.d/K35test
./rc5.d/S77test
./rc6.d/K35test

즉 실행레벨 3과 5에서 사용되기 때문에 Start 를 가리키는 대문자 S로 된 링크파일이 rc3.d 와 rc5.d 에 생겼고 나머지 레벨에는 모두 시스템이 종료할때 사용되는 대문자 K로 시작하는 링크파일이 생긴겁니다...

PS : 이런것까지 궁금해 하시다니... 리눅스 처음 사용할때의 저를 보는것 같네요...
/etc 디렉토리안의 파일들이 뭐하는놈들인지 공부하시면 리눅스 운영하기가 더 쉬울겁니다.

 

김민규 님의 글



오늘은 특정실행레벨에서 kill 시킨다는 것이 무엇을 의미하는 것인지 몰라서 질문을 하러왔어요...
오늘 질문은 3개 ^^;; 그리 길지 않으니까요. 답변 부탁드릴께요.
(질문1)
/etc/rc.d/rc[0에서6] 디렉토리에 K로 시작되는 심볼릭링크 파일은 특정실행레벨에서 해당 프로세스를 죽이는 것으로 알고 있는데요.
K로 시작되는 심볼릭링크 파일은 부팅시 어떻게 작동하는지 보기 위해서 abc라는 파일을 /etc/rc.d/init.d 디렉토리에 만들고, S01abc라는 파일을 /etc/rc.d/rc3.d 디렉토리에
넣은 후에 계속 실행레벨 3으로 부팅하여 다음과 같은 테스트를 해 봤거든요...

테스트1) S01abc 심볼릭링크 파일을 삭제한 경우
            :  부팅시 abc 파일 실행 안 됨
테스트2) S01abc 심볼릭 링크 파일과 K01abc 심볼릭파일을 /etc/rc.d/rc3.d/ 디렉토리에 만들어 넣은 경우
            : 부팅시 abc 파일은 그대로 실행됐고, abc파일을 kill 했다는 메세지는 보이지 않음
테스트3) S01abc 심볼릭 링크 파일을 삭제하고, K01abc 심볼릭링크 파일은 /etc/rc.d/rc3.d/ 디렉토리에 그대로 둔 경우
           : 부팅시 abc 파일은 실행 안 됐고, abc파일을 kill 했다는 메세지는 보이지 않음

위의 3가지 테스트를 해 본 결과 /etc/rc.d/rc[0에서6]/ 디렉토리에 S로 시작되는 파일을 삭제할 경우, K로 시작되는 심볼릭링크 파일을 만들어 넣을 필요가 없을 것 같은데,
굳이 K로 시작되는 심볼릭링크 파일을 만들어서 넣어야하는 이유가 뭔가요?

(질문2)
이번 질문도 질문1)과 좀 비슷한데요.  그래도 읽어보시고 답변 좀...^^;;
/etc/rc.d/init.d 디렉토리에 있는 파일을 열어보면 맨 위에 다음과 같은 주석이 있는데요.

# chkconfig: 345 85 15
# description: Apache is a World Wide Web server.
# processname: httpd

이 주석 내용 중에 # chkconfig: 345 85 15 라는 것은 부팅시 실행레벨 3,4,5 에서 해당 파일을 실행시키라는 것을 의미하고, 앞에 85는 시작의 우선순서이고, 뒤에 15는 종료의 우선순위라고 하던데요.
여기서 이해가 안 가는 것이 부/팅/시 실행레벨 3,4,5 에서 85번째로 해당 파일을 실행시키라고 했는데,  다시 15번째로 종료시키라는 것은 뭔가요?
실행시키라고 했다가 종료시키라는 것이 이해가 안가네요. ㅡ_ㅡ;

(질문3)
이건 위의 질문들과는 좀 상관없는 질문이기는 한데요. ^^;;;
ntsysv 명령을 실행했을 때, 목록에 나오는 프로세스들은 모두 /etc/rc.d/init.d 디렉토리에 있는 파일들이라고 생각하고 있었는데요.
오늘 우연히 확인해 보니까, /etc/rc.d/init.d 디렉토리에 없는 파일들도 ntsysv 목록에 나오던데요. (amandaidx, amidxtape,chargen, chargen-dup ...등) /etc/rc.d/init.d 디렉토리 말고 다른 디렉토리에 있는 파일들도 ntsysv 목록에 나오는 건가요? 만약, 있다면 어떤 디렉토리에 있는 파일들이 ntsysv 목록에 나오는 건가요?

오늘도 좋은 답변 부탁드릴께요...(__)




 

관련자료

댓글 1

김민규님의 댓글

  • 김민규
  • 작성일
너무나 친절한 답변 감사드려요(__), 질문한 것 이외에도 많은 도움이 됐어요. 정말로 감사드려요(__)

공지사항


뉴스광장


  • 현재 회원수 :  60,138 명
  • 현재 강좌수 :  36,196 개
  • 현재 접속자 :  439 명