本地英文版地址: ../en/stopping-elasticsearch.html
Elasticsearch 的有序关闭确保了 Elasticsearch 有机会清理和关闭未完成的资源。 例如,一个有序关闭的节点将从集群中删除自己,将事务日志同步到磁盘,并执行其他相关的清理活动。 你可以通过适当停止 Elasticsearch 来帮助确保有序地关闭。
如果你将 Elasticsearch 作为服务运行,则可以通过安装的程序提供的服务管理功能停止 Elasticsearch。
如果是直接运行的 Elasticsearch,可以通过发送 control-C (如果是在控制台中运行 Elasticsearch) 或 通过向 POSIX 系统上的 Elasticsearch 进程发送 SIGTERM
来停止 Elasticsearch。
可以通过各种工具获得发送信号的 PID(比如 ps
或 jps
):
$ jps | grep Elasticsearch 14542 Elasticsearch
或者,从 Elasticsearch 的启动日志:
[2016-07-07 12:26:18,908][INFO ][node ] [I8hydUG] version[5.0.0-alpha4], pid[15399], build[3f5b994/2016-06-27T16:23:46.861Z], OS[Mac OS X/10.11.5/x86_64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_92/25.92-b14]
或者,在启动时指定一个位置来写入 PID 文件 (-p <path>
):
$ ./bin/elasticsearch -p /tmp/elasticsearch-pid -d $ cat /tmp/elasticsearch-pid && echo 15516 $ kill -SIGTERM 15516
因致命错误而停止 (Stopping on Fatal Errors)
在 Elasticsearch 虚拟机的生命周期中,可能会出现某些致命错误,使虚拟机处于可疑状态。 此类致命错误包括内存不足错误、虚拟机内部错误和严重的I/O错误。
当 Elasticsearch 检测到虚拟机遇到这种致命错误时,它将尝试记录该错误,然后挂起虚拟机。 当 Elasticsearch 开始执行这种关闭时,它不会像上面描述的那样有序关闭。 Elasticsearch 进程还会返回一个特殊的状态代码,表明错误的类型。
JVM internal error |
128 |
Out of memory error |
127 |
Stack overflow error |
126 |
Unknown virtual machine error |
125 |
Serious I/O error |
124 |
Unknown fatal error |
1 |