我可能遗漏了一些非常愚蠢的东西,但是有人知道为什么当 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 启动时触发 upstart 服务。本质上,我想执行这个帖子,但无需编辑 docker init.d 脚本。毕竟,自动编辑其他人的 init.d 脚本似乎是破坏事物的好方法。
我已确保权限与 中的所有其他内容相匹配/etc/init.d/
,它已添加chkconfig --add replicated-docker
,并显示在 中service --status-all
。
当然,当我手动或通过运行脚本时,它可以起作用sudo service replicated-docker start
。
答案1
我猜仅仅将脚本添加到 /etc/init.d/ 是不够的,需要在相关的 /etc/rcx.d/ 中引用它。