I am trying to run Elasticsearch 2.1.1 in my Linux machine which I am the root user of it.
When I tried to execute the Elasticsearch.I am getting the following error:
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.
I referred some suggestion available in internet, they mentioned to run it as different user. My scenario is to run as root user only. How to overcome this problem without running as different user.
Based of the following code-snippet looks like you should be able to achieve this by enabling property
es.insecure.allow.root
Example :
bin/elasticsearch -Des.insecure.allow.root=true
You can also create alias
alias elasticsearch='elasticsearch -Des.insecure.allow.root=true'
Add above line in bashrc file, After that elasticsearch command will work.
You should change the owner and group of the elasticsearch-X.X.X and run as that user. It works in elasticsearch-5.3.0
There are two workarounds to resolve this issue :
Solution 1:
download zip file n unzip then start by following command
bin/elasticsearch -Des.insecure.allow.root=true -d
Solution 2:
vi bin/elasticsearch
Add property to allow root to run two instance:
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
Save and close.
You can start by root now.
we need to create a new user in Linux server say user = es
and grant sudo chown -R es elasticsearch-6.1.0/
then you can switch 'es' user account and run ./elasticsearch-6.1.0/bin/elasticsearch