나는 이것에 대해 잠시 동안 무언가를 읽은 것 같지만 그것이 어떻게 이루어 졌는지 기억할 수 없습니다. 기본적 /etc/init.d
으로 부팅시 자동으로 시작 하려는 서비스가 있습니다. 스크립트와 /etc/rc.d
디렉토리 를 연결하는 것과 관련이 있지만 현재는 기억할 수 없습니다. 이것에 대한 명령은 무엇입니까?
저는 Fedora / CentOS 파생 상품을 사용하고 있다고 생각합니다.
나는 이것에 대해 잠시 동안 무언가를 읽은 것 같지만 그것이 어떻게 이루어 졌는지 기억할 수 없습니다. 기본적 /etc/init.d
으로 부팅시 자동으로 시작 하려는 서비스가 있습니다. 스크립트와 /etc/rc.d
디렉토리 를 연결하는 것과 관련이 있지만 현재는 기억할 수 없습니다. 이것에 대한 명령은 무엇입니까?
저는 Fedora / CentOS 파생 상품을 사용하고 있다고 생각합니다.
답변:
언급 한 바와 같이 Red Hat 기반 시스템에있는 경우 다음을 수행 할 수 있습니다.
/etc/init.d
(예 :)에 배치하십시오 /etc/init.d/myscript
. 스크립트는 다음 형식이어야합니다.#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....
# Source function library.
. /etc/init.d/functions
start() {
# code to start app comes here
# example: daemon program_name &
}
stop() {
# code to stop app comes here
# example: killproc program_name
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
# code to check status of app comes here
# example: status program_name
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
esac
exit 0
형식은 매우 표준이며에서 기존 스크립트를 볼 수 있습니다 /etc/init.d
. 그런 다음 so /etc/init.d/myscript start
또는 처럼 스크립트를 사용할 수 있습니다 chkconfig myscript start
. ckconfig
매뉴얼 페이지에는 스크립트의 헤더를 설명합니다 :
> This says that the script should be started in levels 2, 3, 4, and
> 5, that its start priority should be 20, and that its stop priority
> should be 80.
시작, 중지 및 상태 코드 예제는에 정의 된 도우미 함수를 사용합니다. /etc/init.d/functions
스크립트 활성화
$ chkconfig --add myscript
$ chkconfig --level 2345 myscript on
스크립트가 실제로 활성화되어 있는지 확인하십시오. 선택한 레벨에 "on"이 표시되어야합니다.
$ chkconfig --list | grep myscript
머신이 일반적으로 시작하는 런레벨을 테스트합니다.
runlevel
종종 이것은 5 또는 2입니다-다양한 규칙이 있지만 실제로 확립 된 것은 없습니다. 우분투는 2를 사용하지만 이전에 사용한 배포판은 항상 사용했습니다.
그럼 당신은 아마 당신의 초기화 스크립트에서 심볼릭 링크를 만들기 /etc/init.d/foobar
에/etc/rc2.d/SXYfoobar
S는 '이 런레벨에서이 스크립트를 시작합니다 (여기서는 2)를 의미합니다. XY는 두 자리 십진수이며 시퀀스와 관련이 있으며 스크립트가 시작됩니다.
스크립트 S45barfoo를 실행하기 전에 실행하고 S55foofoo가 스크립트에 따라 달라지는 경우 45에서 55 사이의 xy를 선택합니다. 같은 수의 부팅 순서는 정의되지 않습니다.
한편 우분투는라는 다른 시작 절차로 전환했습니다 upstart
.
그리고 참고 : 항상 링크가 링크되는 것은 아닙니다. /etc/rcX.d
때로는 링크 /etc/init/rcX.d
와 유사하지만 / etc 아래의 어딘가에서 쉽게 찾을 수 있습니다.
시작 스크립트의 끝에서 무언가를 시작하려면 찾고자하는 /etc/rc.local
파일이되지만 이미 실행중인 X11에 의존하는 경우 데스크탑 환경의 자동 시작 옵션 또는 /etc/X11/Xsession.d/
설명 된 것과 유사한 패턴을 찾을 수 있습니다 위.
네트워크가 작동중인 경우 별도의 디렉토리 (if-up.d)와 외부 USB 드라이브와 같은 마운트 된 장치가 있습니다 /etc/udev/rules.d/
.
update-rc.d
않습니까?
Naftuli Tzvi Kay가 위의 데비안에 대해 물었을 때 : 데비안 6부터는 스크립트에 의존성과 기능을 나타내는 LSB (Linux Standards Base) 헤더가 포함되어 있어야합니다 ( 데비안 위키 페이지 참조 ).
LSB 헤더가 있으면 insserv
부팅 프로세스에 스크립트를 포함시키는 데 사용할 수 있습니다 ( 다른 데비안 위키 페이지 참조 ).
/etc/init
,/etc/init.d
,/etc/rc.d
,/etc/rc.local
등 몇 가지가 있나요?