python - 无法使用 SIGKILL 杀死 docker 容器内的 pid 1

标签 python docker signals

出于某种原因,我想杀死 docker 容器中的主要 python 进程( PID 1 )。但是诸如 SIGTERMSIGKILL 之类的终止信号都不起作用。我的意思是,运行 kill -SIGKILL 1 没有任何效果。 如何从容器内部杀死 pid 1 ?我不想运行 docker stop 或类似的解决方案。

最佳答案

根据 Docker 问题跟踪器和 pid 1s 状态的一般文档,您需要专门为信号添加处理程序并从中终止进程。

signal.signal(signal.SIGINT, exit_gracefully)
signal.signal(signal.SIGTERM, exit_gracefully)

exit_gracefully需要被定义并最终调用sys.exit(0)

内核需要并强制执行此行为,因为它不会在其他 pid 上调用 sigaction 默认值,即终止。

我们需要在 Node.js 中做类似的事情。

关于python - 无法使用 SIGKILL 杀死 docker 容器内的 pid 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40947851/

相关文章:

docker - 使用主机库的Docker

perl - 我可以为Perl中的所有信号设置一个信号处理程序吗?

python - 如何置换 Pandas 列的值?

docker - 将文件从主机复制到 Docker 容器的工作目录

python - Google Apps 中的 Cron 作业是否有时间限制?

docker - 错误:services.web的撰写文件 './docker-compose.yml'不支持的配置选项: 'dockerfile'

cocoa - 在 cocoa os x 上创建自定义事件/信号

php - 防止在父级中打开的流套接字被子叉关闭

python - 正则表达式匹配最后一次出现

Python-请求 : Correctly Using Params?