docker stop slow 解决

验证 NanoMQ stop slow 的问题

  • daemon 和非 daemon 两种方式 docker stop 都很慢

疑问是默认情况下,SIGTERM 会被处理。

  • 模拟 docker 内发送 SIGTERM 信号
bash 复制代码
# The  default  signal  for  kill is TERM
# pkill  will  send  the  specified  signal  (by  default SIGTERM) to each
# process instead of listing them on stdout.
$ kill pid 
$ pkill program

docker 内收不到信号。

查到资料显示:pid 为 1 的进程的 sigterm 默认被屏蔽了,除非手动捕获该信号。于是,在程序处理中手动捕获该信号,问题解决。

pid 1 is special on Linux, it is unkillable, meaning that signals that would normally terminate a process if it has no handler installed do not terminate it. In other words,pid 1 must handle SIGTERM explicitely for the usual scemantics to apply. I keep rediscovering this with containers...

raby.sh - SIGTERM and PID 1: Why does a container linger after receiving a SIGTERM.

这部分也有解释:

Dockerfile reference | Docker Docs

相关推荐
杨云龙UP16 分钟前
SQL Server 备份异地同步 + 清理脚本
运维·服务器·数据库·sql·mysql·sqlserver
q***48411 小时前
Nginx中$http_host、$host、$proxy_host的区别
运维·nginx·http
喜欢你,还有大家1 小时前
k8s集群监控的部署
云原生·容器·kubernetes
_lst_1 小时前
linux进程状态
linux·运维·服务器
霍格沃兹测试开发学社-小明2 小时前
AI来袭:自动化测试在智能实战中的华丽转身
运维·人工智能·python·测试工具·开源
MaisieKim_2 小时前
2025年企业文档管理系统全面评测报告
运维·数据库
喜欢你,还有大家3 小时前
实战演练——wordpress-k8s集群版
云原生·容器·kubernetes
德育处主任3 小时前
『NAS』轻松获取群晖自带的壁纸
服务器·docker
zzzsde3 小时前
【Linux】基础开发工具(3):编译器
linux·运维·服务器
e***87704 小时前
Node.js 与 Docker 深度整合:轻松部署与管理 Node.js 应用
docker·容器·node.js