Я, наверное, упустил что-то действительно глупое, но кто-нибудь знает, почему этот сценарий инициализации не запускается при запуске Docker в Amazon Linux 17.09?
#!/bin/sh
### BEGIN INIT INFO
# Provides: replicated-docker
# Required-Start: docker
# Required-Stop: docker
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: send upstart signal after starting docker
# Description: docker needs to run before some upstart services can run
### END INIT INFO
_status() {
printf "replicated-docker: %s, %s, %s\n" \
"$(initctl status replicated)" \
"$(initctl status replicated-ui)" \
"$(initctl status replicated-operator)"
}
case "$1" in
start|restart|reload)
initctl emit replicated-docker --no-wait
;;
stop)
;;
status)
_status
;;
*)
printf "Usage: /etc/init.d/replicated-docker {start|stop|status|reload|restart}\n"
exit 1
;;
esac
exit 0
Цель здесь - запустить службу выскочки всякий раз, когда запускается Docker. По сути, я хотел бы сделать то, что описано в этой публикации , за исключением того, что мне не нужно редактировать скрипт docker init.d. В конце концов, автоматическое редактирование чужого сценария init.d кажется отличным способом сломать ситуацию.
Я убедился, что разрешения совпадают со всем остальным в /etc/init.d/
, это было добавлен с помощью chkconfig --add replicated-docker
и отображается в service --status-all
.
И, конечно же, он работает, когда я запускаю сценарий вручную или через sudo service replicated-docker start
.
Думаю, просто добавления скрипта в /etc/init.d/ недостаточно, на него нужно ссылаться в соответствующем файле /etc/rcx.d/.