当Elasticsearch无法启动时,其令人悲痛不已的原因

有什麼困擾嗎?

这是关于在引入Growi时,按照官方指南在Ubuntu上安装elasticsearch时发生的事情。

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.

我遇到了一个人。

只要谷歌一下,问题的解决办法就出来了,但是…

有关此错误的问答出现了,但是完全没有解决。

我认为这是有力的信息,来源是这里和这里。

然而,尽管我尝试了这种方法,但错误仍然没有改变,让我感到困惑。

错误的原因在哪里?

当我遇到上述错误时,我正在寻找更多细节,以便更好地理解问题,发现 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的设置所导致。

不过,由于我使用的是4GB的RAM,所以内存分配应该没有问题。我也怀疑有没有拼写错误,但是应该是正确的。我已经重新修改了相关部分,但问题依然没有解决。

當我的腦海中出現了「?」符號時,我意識到了一件事。

顺便提一下,当设置两个值时,我记得以前在开头加了一个空格。

我本以为可能是这样,所以进行了修正。

#修正前、先頭が半角スペース1マス分空いている
 -Xms512m
 -Xmx512m

#修正後、先頭のスペース分も詰める
-Xms512m
-Xmx512m

当再次执行时,之前立即出现的错误消息不再出现。然后等待几十秒后,进入下一个输入等待状态。

小心地确认状态

active

我感到开心,但同时不禁嘟囔了一句“噢,你这个人啊……”。

顺便提一下,我将elasticsearch停止并将jvm.options的相关部分修改还原后重新运行,结果再次遇到了错误信息。

最终结果

在我遇到的情况中,Elasticsearch无法启动的原因是由于空了一个空格的位置。

解决问题当然让人高兴,但我也尝到了一股神秘的失败感。

如果早点查看了jvm.options的格式,问题可能会更快解决。通过这次经历我学到了一些东西。

参考资料