Elasticsearchの停止
Elasticsearchの秩序あるシャットダウンは、Elasticsearchがクリーンアップを行い、未処理のリソースを閉じる機会を確保します。たとえば、秩序ある方法でシャットダウンされたノードは、クラスターから自らを削除し、トランスログをディスクに同期し、その他の関連するクリーンアップ作業を実行します。Elasticsearchを適切に停止することで、秩序あるシャットダウンを確保できます。
Elasticsearchをサービスとして実行している場合、インストールによって提供されるサービス管理機能を介してElasticsearchを停止できます。
Elasticsearchを直接実行している場合、コンソールでElasticsearchを実行している場合はcontrol-Cを送信するか、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
致命的エラー時の停止
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 |