因为运行了多个容器,重启docker进程时会让所有容器重启,时间不能等;有没有类似nginx一样的reload机制呢?

linux 信号认知:SIGHUP

本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联。
登录Linux时,系统会分配给登录用户一个终端(Session)。在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个 Session。当用户退出Linux登录时,前台进程组和后台有对终端输出的进程将会收到SIGHUP信号。这个信号的默认操作为终止进程,因此前台进 程组和后台有终端输出的进程就会中止。不过可以捕获这个信号,比如wget能捕获SIGHUP信号,并忽略它,这样就算退出了Linux登录,wget也 能继续下载。

重点来了:

此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。

使用kill测试

ps -ef|grep dockerd
kill -SIGHUP $(pidof dockerd) 

– 使用kill命令,发送SIGHUP信号给dockerd ,dockerd收到信号后会reload配置;

– SIGHUP对应信号编码1,可简化为:

kill -1 $(pidof dockerd) 

测试结果

在这里插入图片描述

使用docker info查询或者相关的配置的操作显示:
发现容器的状态时间不变,但新的配置已经添加;


另常用的kill另一个信号是:

kill -9 $pid

对应的信号是:
SIGKILL
用来立即结束程序的运行. 本信号不能被阻塞、处理和忽略。如果管理员发现某个进程终止不了,可尝试发送这个信号。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐