Ubuntu 14.04.1 LTS 서버용 시작 스크립트를 만들고 있습니다. 이 스크립트는 Rabbit MQ 서버 이후에 실행되어야 합니다. Rabbit MQ 시작 스크립트는 "rabbitmq-server"를 제공한다고 말합니다. 따라서 이 문자열을 시작 스크립트 헤더의 "필수 시작" 목록에 넣었습니다(아래 참조). 그러나 update-rc를 사용하여 스크립트를 설치한 후 Rabbit MQ 스크립트와 스크립트가 모두 "S20" 수준에 있습니다. 즉, 종속성이 작동하지 않는 것 같습니다. 내 스크립트도 올바르게 시작되지 않지만 부팅 후 수동으로 실행하면 시작됩니다. 문제를 해결하는 방법에 대한 아이디어가 있습니까?
### BEGIN INIT INFO
# Provides: amqp_receive
# Required-Start: $local_fs $network rabbitmq-server
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Script to provide start/stop/status of the amqp_receive program
### END INIT INFO
lrwxrwxrwx 1 root root 22 Aug 17 00:29 S20amqp-receive -> ../init.d/amqp-receive
lrwxrwxrwx 1 root root 25 Aug 13 18:14 S20rabbitmq-server -> ../init.d/rabbitmq-server
lrwxrwxrwx 1 root root 15 Apr 16 18:26 S20rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root 24 Apr 16 18:26 S20screen-cleanup -> ../init.d/screen-cleanup
lrwxrwxrwx 1 root root 23 Apr 16 18:26 S38open-vm-tools -> ../init.d/open-vm-tools
lrwxrwxrwx 1 root root 26 Apr 16 18:26 S45landscape-client -> ../init.d/landscape-client
lrwxrwxrwx 1 root root 19 Apr 16 18:26 S70dns-clean -> ../init.d/dns-clean
lrwxrwxrwx 1 root root 18 Apr 16 18:26 S70pppd-dns -> ../init.d/pppd-dns
lrwxrwxrwx 1 root root 21 Apr 16 18:26 S99grub-common -> ../init.d/grub-common
lrwxrwxrwx 1 root root 18 Apr 16 18:25 S99ondemand -> ../init.d/ondemand
lrwxrwxrwx 1 root root 18 Apr 16 18:25 S99rc.local -> ../init.d/rc.local
답변1
문제는 스크립트가 알파벳 순서로 실행된다는 것입니다(위에서 말했듯이 문제는 모두 로 시작한다는 것입니다 S20
). 따라서 S20amqp-receive
이전에 실행하세요 S20rabbitmq-server
. 동의합니다. 실행에 문제가 발생했습니다 update-rc.d
. 어쩌면 update-rc.d amqp-receive defaults
다시 할 수도 있습니다 .
S20amqp-receive
또 다른 해결책은 (수동으로) 이름 을 로 바꾸는 것입니다 S21amqp-receive
. 그러면 이 스크립트는 로 시작하는 스크립트 다음에 실행됩니다 S20
.
노트:종속성을 수정하는 것이 좋습니다.