2016-01-21 107 views
22

我想在我的Linux机器上运行Elasticsearch 2.1.1,它是我的根用户。如何以root用户的身份在Linux机器上运行Elasticsearch 2.1.1

当我试图执行Elasticsearch.I正在以下错误,

Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root. 
     at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93) 
     at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144) 
     at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285) 
     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) 
Refer to the log for complete error details. 

我提到在互联网上公布了一些建议,他们提到运行它为不同的用户。我的场景是仅以root用户身份运行。如何克服这个问题,而无需像其他用户一样运行。提前

+0

我不相信有一种解决方法,出于安全原因,您必须将其作为另一个用户运行。 – IanGabes

+0

以root身份运行webserver是非常危险的。这一定不会发生。特别是这个答案钉它:http://askubuntu.com/a/16201/35185 请参阅此主题:http://askubuntu.com/questions/16178/why-is-it-bad-to-login- as-root – Semo

回答

44

由于基于以下code-snippet的样子,你应该能够使财产 es.insecure.allow.root

实例来实现这一目标:

bin/elasticsearch -Des.insecure.allow.root=true 
+0

非常感谢哟。你的建议做到了,但现在我面临着不同的错误。我正在粘贴下面的错误,“线程中的异常”main“java.lang.IllegalStateException:无法获取节点锁,是以下位置可写?:[/ anvs/indexstore/mysample] 可能的根本原因:java.io. IOException:没有锁可用于sun.nio.ch.FileDispatcherImpl.lock0(本机方法) at sun.nio.ch.FileDispatcherImpl.lock(FileDispatcherImpl.java:90) at sun.nio.ch.FileChannelImpl.tryLock( FileChannelImpl.java:1082)' – Mangoski

+0

你检查了文件夹/ anvs/indexstore/mysample的权限吗? – keety

+6

当前的答案不再适用于最新的elasticsearch。 – rjurney

3

您还可以创建别名

别名elasticsearch = 'elasticsearch -Des.insecure.allow.root =真'

添加上面的行中bashrc中文件,之后elasticsearch命令将起作用。

+3

这不再有效。 – rjurney

+1

它在版本5.4.0中不起作用 –

+0

@BoPennings是的,它已经在5.X版本中被弃用了。你必须在你的box中创建一个非root用户,并且你要将elasticsearch用户名和组更改为新创建的非 - 根用户,然后你必须开始这个过程。 – Mangoski

9
  1. 打开脚本文件:

    VI斌/ elasticsearch

  2. 添加属性允许root:

    ES_JAVA_OPTS = “ - Des.insecure.allow.root =真正的”

  3. 保存并关闭。
  4. 您现在可以以root身份启动。

祝你好运。

+5

这不再适用于最新的elatiscsearch。 – rjurney

+0

它对我有用 –

+0

它在版本5.4.0中不起作用 –

1

您应该更改elasticsearch-X.X.X的所有者和组并以该用户身份运行。它适用于elasticsearch-5.3.0

相关问题