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.
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
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.
There are two workarounds to resolve this issue :
Solution 1: download zip file n unzip then start by following command
Solution 2:
Add property to allow root to run two instance:
Save and close. You can start by root now.
Open script file:
vi bin/elasticsearch
Add property for allow root:
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
Good luck.
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
Based of the following code-snippet looks like you should be able to achieve this by enabling property es.insecure.allow.root
Example :