停止 Elasticsearch

编辑

有序地关闭 Elasticsearch 可确保 Elasticsearch 有机会清理并关闭未完成的资源。例如,以有序方式关闭的节点将从集群中移除自身,将事务日志同步到磁盘,并执行其他相关的清理活动。您可以通过正确停止 Elasticsearch 来帮助确保有序关闭。

如果您以服务的身份运行 Elasticsearch,您可以通过安装程序提供的服务管理功能来停止 Elasticsearch。

如果您直接运行 Elasticsearch,则如果在控制台中运行 Elasticsearch,可以通过发送 Control-C 来停止 Elasticsearch;或者在 POSIX 系统上向 Elasticsearch 进程发送SIGTERM 信号。您可以通过各种工具(例如 psjps)获取要发送信号的 PID。

$ 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

致命错误时的停止

编辑

在 Elasticsearch 虚拟机的生命周期中,可能会出现某些导致虚拟机处于可疑状态的致命错误。此类致命错误包括内存不足错误、虚拟机内部错误和严重的 I/O 错误。

当 Elasticsearch 检测到虚拟机遇到此类致命错误时,它将尝试记录错误,然后将停止虚拟机。当 Elasticsearch 启动此类关机时,它不会像上面描述的那样进行有序关机。Elasticsearch 进程也将返回一个特殊的状态代码,指示错误的性质。

被 jvmkiller 代理杀死

158

用户或内核 SIGTERM

143

被内核 oom-killer 终止

137

段错误

134

JVM 内部错误

128

内存不足错误

127

堆栈溢出错误

126

未知虚拟机错误

125

严重的 I/O 错误

124

引导检查失败

78

未知致命错误

1