J'essaie d'exécuter Elasticsearch 2.1.1 sur ma machine Linux dont je suis le root.
Lorsque j'essaie d'exécuter Elasticsearch. Je reçois le message d'erreur suivant:
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.
J'ai mentionné une suggestion disponible sur Internet, ils ont suggéré de l'exécuter en tant qu'utilisateur différent. Mon scénario est d'exécuter en tant qu'utilisateur root uniquement. Comment surmonter ce problème sans exécuter en tant qu'utilisateur différent.
D'après l'extrait de code suivant , vous devriez pouvoir y parvenir en activant la propriété es.insecure.allow.root
Exemple :
bin/elasticsearch -Des.insecure.allow.root=true
Ouvrir le fichier script:
vi bin/elasticsearch
Ajouter une propriété pour autoriser la racine:
ES_Java_OPTS = "- Des.insecure.allow.root = true"
Bonne chance.
Vous pouvez également créer un alias
alias elasticsearch = 'elasticsearch -Des.insecure.allow.root = true'
Ajouter la ligne ci-dessus dans bashrc file, Après cela elasticsearch command fonctionnera.
Vous devez changer le propriétaire et le groupe de elasticsearch-X.X.X et l'exécuter sous cet utilisateur. Cela fonctionne dans elasticsearch-5.3.0
Il existe deux solutions pour résoudre ce problème:
Solution 1: Télécharger le fichier Zip n décompresser puis commencer par la commande suivante
bin/elasticsearch -Des.insecure.allow.root=true -d
Solution 2:
vi bin/elasticsearch
Ajoutez une propriété pour autoriser root à exécuter deux instances:
ES_Java_OPTS="-Des.insecure.allow.root=true"
Enregistrer et fermer . Vous pouvez commencer par root maintenant.