데비안에 관한 질문인데, 많은 리눅스 환경에서도 마찬가지일 것 같습니다.
이 /etc/init.d
디렉터리는 부팅 시 실행되는 서비스를 정의합니다. 누가 언제 달리는지 정의하는 두 가지 메커니즘이 있는 것 같습니다.
- 실행 레벨 디렉토리 -
/etc/rcN.d/
디렉토리에는 스크립트에 대한 심볼릭 링크가 있으며,init.d
그 안에 있는 숫자는 스크립트가 실행되는 순서를 정의합니다. 이러한 기호 링크는 를 실행하여 생성됩니다update-rc.d
. - insserv 파일 -
.depend.start/stop/boot
이 유틸리티에서 생성된 파일입니다insserv
. 이 파일에서TARGETS
나타나는 순서대로 실행 중인 스크립트를 볼 수 있습니다 (참조:이 게시물)
그렇다면 첫 번째 질문은 - 부팅 순서를 결정하는 것은 무엇입니까?
부팅 순서 를 변경하려면 rc.N
디렉토리에서 심볼릭 링크 이름을 편집 하거나 .depend.start
.insserv
update-rc.d
두 번째 질문 - insserv
init.d 스크립트를 호출한 후에도 지속되는 방식으로 시작 순서를 제어하는 방법은 무엇입니까 update-rc.d
?
답변1
sysvinit
(systemd는 다르지만 initscript가 아닌 단위를 사용할 수 있음) 의 경우 부팅 순서 는 에 의해 부팅 중에 생성됩니다 /etc/rc?.d
. 거기의 심볼릭 링크는 실제로 구현 세부 사항입니다( etc 파일 포함). 주의해야 할 것은 LSB 헤더에 선언된 initscript 간의 종속성입니다.update-rc.d
insserv
.depend.boot
예를 들어:
### BEGIN INIT INFO
# Provides: unbound
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $network $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
시작 순서를 변경하려면 관련 initscripts에 종속성을 추가해야 합니다. 가장 안전한 방법은 재정의를 추가하는 것입니다 /etc/insserv/overrides
. 재정의하려는 스크립트와 동일한 이름으로 새 파일을 만들고 해당 파일에 새 헤더를 씁니다. 그런 다음 심볼릭 링크 재계산을 실행하세요 update-rc.d yourscript defaults
.
맨 페이지에서 자세한 정보를 찾을 수 있습니다.insserv
그리고update-rc.d
.