chkconfig명령어에 대한 질문이요...

cd9cd9의 이미지

책에 chkconfig 명령에 대해 구체적인 설명이 나와있지 않아 혼자서 해결 해 보려고 이런저런 테스트를 해 보았지만, 아직 리눅스 초보인지라 여러가지로 막히네요. 그럼 chkconfig 에 대한 질문을 드릴께요...

(참고로 질문1~3까지는 --add 옵션과 관련된 질문이예요.)
: /xyz/ 디렉토리에 있는 abc라는 파일을 ntsysv목록에 나타나게 하기 위해, /xyz/abc 파일을 /etc/rc.d/init.d 디렉토리에 복사한 후에...

chkconfig --add /etc/rc.d/init.d/abc

라는 명령을 실행했는데, 해당 파일이 존재하지 않습니다. 라는 식의 에러메세지가 나왔어요. 그래서 이번에는 ...

chkconfig --add abc

라는 명령을 내리니까, "abc 서비스는 chkconfig을 지원하지 않음" 이라는 에러메세지가 뜨더라구요.
여기서 궁금한 것이 있는데요...

<질문1>
"abc 서비스는 chkconfig을 지원하지 않음" 이라는 에러메세지를 보아, chkconfig를 지원하는 파일은 파일에 특별한 설정을 해주어야 chkconfig 명령을 이용해 ntsysv 목록에 추가할 수 있는건가요? 일반 텍스트 파일이나, 실행파일등은 chkconfig 명령을 이용하여 ntsysv 항목에 추가할 수 없는 건가요? 그리고, --add 옵션은 특정파일을 ntsysv 목록에 추가시켜주는 기능을 하는 옵션이 맞나요?

<질문2>
chkconfig --add /etc/rc.d/init.d/abc 명령을 실행했을 때, "해당 파일이 존재하지 않습니다." 라는 에러메세지가 뜨는 것으로 보아, chkconfig 명령은 무조건 /etc/rc.d/init.d 디렉토리에 있는 파일만 찾기 때문에 abc라는 파일을 지정할 때는 디렉토리 경로까지 지정하면 디렉토리 경로까지 모두 파일명으로 인식하여 "파일을 찾을 수 없다"는 에러 메세지가 뜨는 것으로 생각되거든요. 그래서 chkconfig 명령을 사용할 때는 해당 파일을 /etc/rc.d/init.d 디렉토리로 이동 또는 복사 한 후에 파일명만 지정해야 되는 것으로 생각되는데요. 맞나요?

<질문3>
이번에는 abc라는 파일을 /etc/rc.d/init.d 디렉토리에 복사해 넣지 않고, abc 파일이 있는 위치, 즉 /xyz/abc 라는 경로를 chkconfig 명령에 사용해 봤는데요. 실행명령은...

chkconfig --add /xyz/abc

를 실행하닌까, "해당 파일이 존재하지 않습니다." 라고 메세지가 뜨던데요. 이와 같은 결과가 나오는 것으로 보아, chkconfig 명령은 무조건 /etc/rc.d/init.d 디렉토리에 있는 파일만을 찾는다는 (질문2) 에서 내린 저의 결론이 맞다고 생각이 드는데, 혹시 제가 착각을 하지 않나 싶어서 질문을 드리는 거예요.

<질문4>
pcmcia 프로세스는 실행레벨 2,3,4,5 에서 실행되는 프로세스인데요. 이 프로세스에...

chkconfig --del pcmcia

명령을 실행해보니까, /etc/rc.d/rc[2에서5].d 디렉토리에 있던, S20pcmcia 이라는 심볼릭 파일이 지워지고, ntsysv 목록에서도 체크가 해제 되어 있더라구요. 그런데, /etc/rc.d/init.d 디렉토리에 pcmcia 파일이 삭제되지 않고, 그대로 있었구요.
다시 chkconfig --level 2345 pcmcia on 명령을 실행하니까, /etc/rc.d/rc[2에서5].d 디렉토리에 있던, S20pcmcia 이라는 심볼릭 파일이 다시 나타나고, ntsysv 목록에도 체크되어 있더라구요.
그렇다면 --del 옵션은 /etc/rc.d/init.d 디렉토리에 있는 파일을 지우지 않지만, 프로세스에 지정된 실행레벨을 모두 off 로 바꾸는 동시에 /etc/rc.d/rc[0~6].d 디렉토리에 심볼릭링크 된 파일을 삭제하는 기능을 하는 옵션인가요?

<질문5>
chkconfig --list 명령을 실행했을 때 출력되는 프로세스들 중에 pcmcia라는 프로세스를 보니까 2,3,4,5 실행레벨 on 으로 되어 있더라구요.
그래서 호기심에 모든 실행레벨을 off 시키고 실행레벨을 0 부터 6 까지 차례대로 on 시킨 후에 ntsysv 목록을 살펴보니, pcmcia 프로세스의 실행레벨이 3으로 지정되어 있을 경우에 ntsysv 목록에 *표 체크가 되어있던데요.
그렇다면 ntsysv 목록에 *표 체크가 되어있는 프로세스들은 실행레벨3이 반드시 지정되어 있다는 뜻이고, 프로세스에 실행레벨3이 지정되어 있지 않은 경우에는 ntsysv 목록에 *표 체크가 되지 않는 것으로 보아, ntsysv 목록 있는 프로세스에 *표 체크를 할 경우 리눅스가 실행레벨 3으로 부팅될 때 해당 프로세스가 실행 된다라는 결론이 나오는데요. 맞나요? (즉, ntsysv 목록에 있는 프로세스에 * 표 체크를 하면 해당 프로세스에 실행레벨 3이 추가로 on 이 된다는 결론이 맞는지 궁금해요...)

<질문6>
chkconfig 옵션에 사용되는 on/off/reset 중에 reset 은 어떤 기능을 하나요? (책에 아무런 설명이 안되어 있어요...ㅠ_ㅠ)

<질문7>
chkconfig --level 2 pcmcia, chkconfig --level 3 adsl 등의 명령을 실행해 보니까, 아무런 내용도 출력되지 않던데요.
"chkconfig --level 특정레벨 name" 명령은 어떤 기능을 수행하나요? (이것도 책에 아무런 설명이 안되어 있어요...ㅠ_ㅠ)

오늘도 질문이 참~ 길죠? ...
질문을 최대한 줄일려고 노력하고는 있지만, 리눅스 초보로써 모르는 부분을 그냥 넘어가기에는 불안하고 찜찜한 마음이 생겨서...ㅡ_ㅡ;;
오늘도 좋은 답변 부탁드릴께요...

cinsk의 이미지

cd9cd9 wrote:
abc 서비스는 chkconfig을 지원하지 않음" 이라는 에러메세지를 보아, chkconfig를 지원하는 파일은 파일에 특별한 설정을 해주어야 chkconfig 명령을 이용해 ntsysv 목록에 추가할 수 있는건가요? 일반 텍스트 파일이나, 실행파일등은 chkconfig 명령을 이용하여 ntsysv 항목에 추가할 수 없는 건가요? 그리고, --add 옵션은 특정파일을 ntsysv 목록에 추가시켜주는 기능을 하는 옵션이 맞나요?

대개는 bash shell script이고, (결국 text file 맞습니다). 헤더 주석에 다음과 같은 line을 포함해야 합니다.

# chkconfig: 2345 85 15

자세한 것은 chkconfig source를 보면 나오는데,

초기 2345는 이 script가 run-level 2, 3, 4, 5에서 동작해야 한다는 것을 의미하고 (결국 /etc/rc.d/rc2.d, /etc/rc.d/rc3.d, /etc/rc.d/rc4.d, /etc/rc.d/rc5.d에 symbolic link를 설치하는 동작),

두번째 세번째는 같은 run-level에서 수행할 priority를 지정합니다. 예를 들어 service이름이 gpm이라면, 각 rc[2345].d 디렉토리에 다음과 같은 두 symbolic link를 설치합니다.

S85gpm - gpm을 start하는 순서..
K15gpm - gpm을 kill하는 순서..

수치가 낮을 수록 우선 순위가 높습니다.

질문2,3에서는,, chkconfig가 받는 인자는 service script에 대한 pathname이 아닙니다.
service script는 /etc/rc.d/init.d/에 있다고 가정하고, 각 서비스에 대한 이름, 즉 filename만 받습니다.

질문 4에서는 /etc/rc 파일을 읽어보시면 이해할 수 있습니다.
system start/end 상황에서 읽어들이는 script는 /etc/rc.d/init.d/ 아래에 있는 service script가 아니라, /etc/rc[0-6].d/에 있는 script입니다.

나머지 질문은... 흠.. 바로 답변하기가 힘들군요. 까먹어서.. chkconfig의 소스를 보시기 바랍니다. 의외로 간단합니다. ^^;
예젠에 본 기억이 있어서..

cd9cd9의 이미지

질문이 상당히 길었는데도 답변을 해주셔서 너무나 감사드려요. (__)

MackTheKnife의 이미지

대부분의 질문이 자문자답인걸요..
나머지 부분은 man chkconfig

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.