停止 Elasticsearch
编辑停止 Elasticsearch
编辑有序地关闭 Elasticsearch 可以确保 Elasticsearch 有机会清理和关闭未完成的资源。例如,以有序方式关闭的节点会将其自身从集群中移除,将事务日志同步到磁盘,并执行其他相关的清理活动。您可以通过正确地停止 Elasticsearch 来帮助确保有序关闭。
如果您以服务方式运行 Elasticsearch,则可以通过安装提供的服务管理功能来停止 Elasticsearch。
如果您直接运行 Elasticsearch,则可以通过以下方式停止 Elasticsearch:如果您在控制台中运行 Elasticsearch,则发送 control-C;或者在 POSIX 系统上,向 Elasticsearch 进程发送 SIGTERM
。您可以通过各种工具(例如,ps
或 jps
)获取要向其发送信号的 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 启动此类关闭时,它不会像上面描述的那样进行有序关闭。Elasticsearch 进程也会返回一个特殊的状态代码,指示错误的性质。
被 jvmkiller 代理杀死 |
158 |
用户或内核 SIGTERM |
143 |
被内核 OOM-killer 杀死 |
137 |
段错误 |
134 |
JVM 内部错误 |
128 |
内存不足错误 |
127 |
堆栈溢出错误 |
126 |
未知的虚拟机错误 |
125 |
严重的 I/O 错误 |
124 |
引导检查失败 |
78 |
未知的致命错误 |
1 |