Elasticsearch Docker停止似乎忽略了SIGKILL

时间:2017-04-01 14:30:06

标签: elasticsearch docker

我试图在Docker中使用Elasticsearch用于本地开发。虽然我可以找到有效的容器,但是当发送docker stop时,容器会挂起默认的10秒,然后docker强行杀死容器。我的假设是,ES要么不在PID 1上,要么其他服务阻止它立即关闭。

我很好奇是否有人可以对此进行扩展,或者更准确地解释为什么会发生这种情况。当其他容器在1-2秒后关闭时,我正在运行大量测试并且10s +关闭只会很烦人。

1 个答案:

答案 0 :(得分:1)

如果您不想等待10秒钟,则可以运行docker kill而不是docker stop。您还可以使用docker stop选项调整-t上的超时,例如docker stop -t 2 $container_id仅等待2秒而不是默认值10。

至于为什么它忽略了sigkill,这可能取决于你正在运行的图像(弹性搜索不止一个)。但是,如果pid 1是/ bin / sh或/ bin / bash之类的shell,它将不会传递信号。如果pid 1是弹性搜索过程,它可能会忽略该信号,或者10秒可能不够长,无法完全清理和关闭。