問題
Growi導入の為に、elasticsearchを公式の通りubuntuにインストールしていた時の出来事です。
sudo systemctl start elasticsearch
を実行したところ
Job for elasticsearch.service failed because the control process exited with error code.
See "systemctl status elasticsearch.service" and "journalctl -xe" for details.
に遭遇しました。
ググったら解決策は出てきたんだけど・・・
このエラーに関するQ&Aは出てきたんですが全然解決しませんでした。
しかし、この方法をやってもエラーは変わらずに困っていました。
エラー原因はどこ
上記のエラーに出ていたコマンド2つでは、原因がよく分からずもっと詳細が分かるコマンドはないかと探していたら、journalctl
のオプション-u
が使えそうでした。
journalctl -u elasticsearch.service
すると
encountered [2] errors parsing [/etc/elasticsearch/jvm.options]
[1] : encountered improperly formatted JVM option in [/etc/elasticsearch/jvm.options] on line number [31]: [-Xms512m]
[2] : encountered improperly formatted JVM option in [/etc/elasticsearch/jvm.options] on line number [32]: [-Xmx512m]
このような情報が表示され、原因はjvm.options
の-Xms512m
と-Xmx512m
の設定にある事までは分かりました。
しかし、今回使用していたのはRAM4GBなのでメモリの割り振りは問題がないはずです。スペルミスも疑いましたが、合ってます。該当部分だけ書き直しもしましたが解決しません。
頭の中に?マークが並んでいた時に、気づいたことがありました。
「そういえば2つの値設定した時に、先頭をスペース1マス分開けてたな」
もしやと思い修正しました。
# 修正前、先頭が半角スペース1マス分空いている
-Xms512m
-Xmx512m
# 修正後、先頭のスペース分も詰める
-Xms512m
-Xmx512m
再度実行すると、直ぐに出てきたエラー文が出てこなくなりました。そして数十秒程待つと、次の入力待ちになりました。
おそるおそるstatus
を確認すると
active
嬉しかったですが、同時に「おま、ええ・・・」と声が漏れてしまいました。
ちなみにですが、1度elasticsearch
を止めて、再度jvm.options
の該当箇所を修正前に戻して実行したところエラー文と再会できました。
結果
私が遭遇したパターンでElasticsearchが起動してくれなかった原因は、スペース1マス分空けたのが原因でした。
解決できたのは勿論うれしいですが、謎の敗北感を味わいました。
きっとjvm.options
の形式を調べていればもっと早く解決したかなーと勉強になりました。
参考文献