我有一个入口点脚本在一个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秒超时,然后退出而从未进入shut_down
函数。
我该如何在bash中捕获由docker stop
发送的信号来进行一些清理?