Docker Apache正常关闭

时间:2016-10-25 08:41:26

标签: linux apache shell unix docker

我们正在努力使OS信号(TERMKILL等)到达Apache服务器,该服务器是使用shell脚本启动的。以下是我们要做的事情: -

1)我们有一个docker文件,结尾于:

 CMD ["sh","-c","/apps/scripts/run.sh" ]

这个想法是启动apache并将docker容器放在它上面。

2)然后我们有一个shell脚本run.sh: -

_term() {
  echo "Caught signal!"
  apachectl -k graceful-stop
}

trap _term SIGINT SIGTERM SIGWINCH

apachectl start &

PID=$!

echo "APACHE PID is ${PID}"

wait $PID

trap - SIGINT SIGTERM SIGWINCH

wait $PID

EXIT_STATUS=$?

echo "Exiting with Exit Status of ${EXIT_STATUS}"

我们的想法是等待Apache服务器并在收到SIGTERM / SIGINT / SIGWINCH后正常杀死它。

我们面临的问题是: -

1)运行docker容器后,它会执行脚本,它会抛出以下错误并退出:

  

等待:pid 102不是这个shell的孩子

似乎shell脚本没有将apachectl start &视为子进程。

我们如何确保shell脚本将信号发送到apache?

如果有任何帮助,将非常感谢!

0 个答案:

没有答案