bash - 在 bash 中捕获来自 "docker stop"的信号

标签 bash docker

我在 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/

相关文章:

c# - 如何将 asp.net core docker 容器暴露给公共(public) url?

python - 从子进程调用的 bash 脚本的返回代码

docker - 为什么在docker run上将入口点设为echo时未设置env变量?

docker - 了解 docker - 容器如何包含所有必需的依赖项?

bash 选项卡自动完成速度太慢,但不是 teraterm 或 putty

bash - 读取所有txt文件并为每个文件分配一个符号链接(symbolic link)

c - 如何使用exec函数启动登录shell(csh)?

docker-compose .env 与 direnv .envrc

bash - 将文本文件拆分成行 block

bash - Bash 的 && 和 || 的 PowerShell 等价物是什么?运营商?