update-rc.d는 일련 번호를 무시합니다.

update-rc.d는 일련 번호를 무시합니다.

머신이 부팅된 후 emacs 데몬이 시작되도록 시스템을 설정하려고 합니다. 실행하려는 명령으로 /etc/init.d 파일을 생성했지만 update-rc.d를 실행할 때 제공한 일련 번호가 무시됩니다.

[host /etc/init.d]$ sudo update-rc.d -n emacs defaults 10 02
insserv: enable service ../init.d/emacs -> /etc/init.d/../rc0.d/K01emacs
insserv: enable service ../init.d/emacs -> /etc/init.d/../rc1.d/K01emacs
insserv: enable service ../init.d/emacs -> /etc/init.d/../rc2.d/S02emacs
insserv: enable service ../init.d/emacs -> /etc/init.d/../rc3.d/S02emacs
insserv: enable service ../init.d/emacs -> /etc/init.d/../rc4.d/S02emacs
insserv: enable service ../init.d/emacs -> /etc/init.d/../rc5.d/S02emacs
insserv: enable service ../init.d/emacs -> /etc/init.d/../rc6.d/K01emacs
insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop
[host /etc/init.d]$ 

명령의 마지막 두 매개변수가 왜 무시되는지, 그리고 시작 시퀀스 번호를 그렇게 낮은 값으로 설정했다는 사실을 무시할 수 있는지 혼란스럽습니다.

답변1

update-rc.d defaults다른 매개변수는 처리하지 않으며 init 스크립트의 정보를 사용합니다.LSB 헤더사용할 우선순위(시퀀스 번호)를 결정하고 서비스를 시작하고 중지할 런레벨을 결정합니다.

스크립트가 이에 의존하는 경우에는 $local_fs낮은 시퀀스 번호로 끝나는 것이 일반적입니다. 살펴보면 /etc/rc2.d낮은 시퀀스 번호의 시작 링크가 많이 표시됩니다. 스크립트가 자체 실행 수준을 지정하지 않으면 기본값이 사용됩니다. 즉, 수준 2-5에서 시작하고 수준 0, 1, 6에서 중지됩니다. 자신만의 값을 정의하려면 일반적으로 다음 헤더를 사용합니다.

### BEGIN INIT INFO
# Provides: emacs
# Required-Start: $local_fs $network $remote_fs
# Required-Stop: $local_fs $network $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop the Emacs daemon
### END INIT INFO

(필요에 따라 다양한 값을 조정합니다).

또한 update-rc.d enable및 각각을 사용하여 update-rc.d disable특정 런레벨에서 스크립트를 활성화 및 비활성화 할 수도 있습니다(예를 들어 update-rc.d emacs disable 3).

관련 정보