RC(8)

명칭
rc - 자동 리부트 처리와 demon 기동을 위한 명령 스크립트

서식
rc rc.conf rc.conf.local rc.early rc.d rc.serial rc.pccard rc.network rc.firewall rc.atm rc. <arch> rc.local rc.shutdown

해설
rc 유틸리티는, 자동 리부트 처리를 제어하는 명령 스크립트 (다른 스크립트를 부릅니다)로, rc.local (은)는 특정 사이트에 특화한 명령을 기술하는 스크립트입니다. 오늘로는, 전형적으로는 /usr/local/etc/rc.d 의 기구가 rc.local 대신에 사용됩니다. 그렇지만, rc.local 를 사용하고 싶은 것이면 /etc/rc 는 아직도 이것을 서포트하고 있습니다. 이 경우, rc.local 가 /etc/rc.conf 를 읽어내도록(듯이) 하고 나서, 당신의 시스템 특유의 한층 더 커스텀 스타트 업 코드를 rc.local 에 추가해 주세요. rc.conf 파일은 rc 파일군으로부터 참조되는 글로벌인 시스템 구성 정보를 가져, rc.conf.local (은)는 로컬인 시스템 구성 정보를 가집니다. rc.conf(5) (을)를 참조해 주세요.

rc.d 디렉토리는, 부트시 및 셧다운시에 자동적으로 실행되는 스크립트를 보관 유지합니다. 부트시에는, 지정된 디렉토리는, rc.local 의 실행 직후에 처리됩니다 (처리 대상 디렉토리의 지정 방법의 자세한 것은 후술 합니다). 셧다운시에는, 디렉토리는 rc.shutdown 하지만 처리합니다. 각 디렉토리내의 스크립트에는, 다음의 중요 사항이 적용됩니다:

•   스크립트는, basename(1) 하지만 시르그로브파탄 *.sh 에 매치 해, 실행 가능한 경우만, 실행됩니다. 이 디렉토리안의 다른 파일이나 디렉토리는, 입다물어 무시됩니다.
•   부트시에 스크립트를 실행할 때, 캐릭터 라인 “start” 하지만, 최초 한편 유일한 인수로서 건네받습니다. 셧다운시에는, 캐릭터 라인 “stop” 하지만, 최초 한편 유일한 인수로서 건네받습니다. 모든 rc.d 스크립트는, 이것들 인수를 적절히 취급할 수 있는 것이다고 기대됩니다. 지정시에 동작 불요의 경우 (부트시에도 셧다운시에도), 스크립트는 성공리에 종료해, 에러 메세지를 출력해 되지 않습니다.
•   각 디렉토리내의 스크립트는, 사전순서에 처리됩니다. 특정의 순서가 필요한 경우에는, 기존의 파일명의 전에 번호를 붙이면 좋을지도 모릅니다. 예를 들면, 100.foo 하 200.bar 의 전에 실행됩니다만, 번호를 앞에 두고 붙이지 않으면 역의 차례로 됩니다.

전형적인 각 스크립트의 출력은, 1 개의 공백 캐릭터의 뒤에, 기동 또는 종료된 소프트웨어 패키지명이 계속되어, 마지막에는 개행 캐릭터는 붙지 않습니다 ( 사용예 시에를 봐 주세요).

복수의 rc.d 디렉토리로부터, 시스템 기동 스크립트를 실행 가능합니다. 디폴트의 위치는 /usr/local/etc/rc.d (와)과 /usr/X11R6/etc/rc.d 그렇지만, local_startup rc.conf(5) 변수로 변경 가능합니다.

rc.shutdown (은)는, 시스템 셧다운에 대해 실행되는 것이 필요한 명령을 가진다 스크립트입니다.

자동 리부트 처리의 진행중, rc 하 autoboot (을)를 인수로서 기동됩니다. rc (은)는 그 최초의 부분에서 fsck(8) (을)를 -p 옵션 첨부로 실행해, 전회의 시스템 셧다운에 의한 사소한 디스크 부정합을 모두 「수선」해, 하드웨어 혹은 소프트웨어의 장해로부터 생겼다 중대한 디스크 부정합을 조사합니다. 이 자동 체크와 수선이 잘되면(자), rc 의 제2부가 개시합니다.

rc 의 제2부는 자동 리부트 처리가 성공한 후 및 싱글 유저 모드의 쉘이 종료해 rc 하지만 기동되었을 경우( init(8) 참조)에 실행됩니다. 이 제2부는 시스템의 모든 demon를 기동해, 에디터 파일을 보존해, 일시 디렉토리 /tmp (을)를 클리어 합니다.

rc.early 스크립트는, 기동 처리의 매우 빠른 단계, 즉 파일 시스템 체크의 직전에 실행됩니다.

rc.serial 스크립트는, 시리얼 디바이스의 특수한 구성이 있으면 그것을 설정하기 위해서 사용합니다.

rc.pccard 스크립트는, PC 카드를 유효하게 하기 위해서 사용합니다.

rc.network 스크립트는, 네트워크를 기동하기 위해서 사용합니다. 네트워크의 기동은 3 패스로 행해집니다. 최초의 패스는, 호스트명과 도메인명을 설정해, 네트워크 인터페이스를 구성해, IP 파이어 월(fire wall) 규칙이 있으면 유효하게 해, 루팅을 유효하게 합니다. 제 2 패스는, 대부분의 네트워크 관련 demon의 기동을 실시합니다. 제 3 패스는, NFS, amd, rwhod, Kerberos, 멀티 캐스트 루팅 demon의 기동을 실시합니다.

rc.firewall 스크립트는, 커널 베이스의 파이어 월(fire wall) 서비스의 규칙의 설정에 사용됩니다.

open
    전입력을 허가합니다.
client
    이 머신만을 보호하려고 합니다.
simple
    전네트워크를 보호하려고 합니다.
closed
    lo0 이외의 전 IP 서비스를 무효로 합니다.
UNKNOWN
    파이어 월(fire wall) 규칙의 로드를 무효로 합니다.
filename
    지정한 파일명의 규칙을 로드합니다 (풀 패스 지정이 필요).

rc.atm 스크립트는, ATM 네트워크 인터페이스를 설정하기 위해서 사용됩니다. 인터페이스는 3 살의 패스로 설정됩니다. 제 1 의 패스로는, 인터페이스의 초기설정을 행합니다. 제 2 의 패스로는, 인터페이스의 설정이 끝나, PVC 및 영속적인 ATMARP 엔트리를 정의합니다. 제 3 의 패스로는, 임의의 ATM demon를 기동합니다.

rc. <arch> 스크립트는, 아키텍쳐 의존의 프로그램을 기동합니다.

rc.local 스크립트가 기동되는 것은, 상기 스크립트의 다음에 가, 나머지의 rc 파일이 완료하기 전입니다. 디폴트 인스톨에서는, rc.local (은)는 존재합니다만, 시스템 관리 책임자가 이 파일을 생성하면, 그 내용이 실행됩니다.

전통에 따라, 스타트 업 파일은 /etc 디렉토리에 놓여집니다.

사용예
부트시에 demon를 기동해, 셧다운시에 이것을 종료하는, rc.d 스크립트의 가상적인 예를 나타냅니다.

    #! /bin/sh -
    #
    #    foobar 패키지의 초기화/셧다운 스크립트
    case "$1" in
    start)
    	/usr/local/sbin/foo -d && echo -n ' foo'
    	;;
    stop)
    	kill `cat /var/run/foo.pid` && echo -n ' foo'
    	;;
    *)
    	echo "unknown option: $1 - should be 'start' or 'stop'" >&2
    	;;
    esac

셧다운시에는 init(8) 하지만 전프로세스를 종료시키므로, 명시적인 kill(1) (은)는 불필요합니다만, 이것이 포함되는 것이 많습니다.

관련 항목
kill(1), rc.conf(5), init(8), reboot(8), savecore(8)

역사
rc 스크립트는 4.0BSD 그리고 등장했습니다.