我在 docker 容器中有一个入口点脚本,如下所示:
#!/bin/bash
echo starting up
function shut_down() {
echo shutting down
pid=$(ps -e | grep myapp | awk '{print $1}')
kill -SIGTERM $pid
exit
}
trap "shut_down" SIGKILL SIGTERM SIGHUP SIGINT EXIT
/opt/myapp
我不知道如何通过在容器上运行 docker stop
来捕获发送的信号。交互运行时,ctrl+c
将按预期触发它,但 docker stop
命令只是等待 10 秒超时,然后退出而无需输入 关机
功能
如何在 bash 中捕获 docker stop
发送的信号以进行清理?
最佳答案
老问题,但这可以解决问题:
#!/bin/bash
echo starting up
exec /opt/myapp
详情请看这里:https://akomljen.com/stopping-docker-containers-gracefully/
关于bash - 在 bash 中捕获来自 "docker stop"的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20602675/