Возможно, мне не хватает чего-то действительно глупого, но кто-нибудь знает, почему этот сценарий инициализации не запускается при запуске 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/.