Lancer la recherche élastique en tant qu'utilisateur root
Je suis en dessous de l'erreur quand j'ai essayé de lancer la recherche élastique 5.0 avec la commande ./elasticsearch
et l'obtention d'erreur ci-dessous.
[2016-11-23T13:44:09,507][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:116) ~[elasticsearch-5.0.1.jar:5.0.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:103) ~[elasticsearch-5.0.1.jar:5.0.1]
at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) ~[elasticsearch-5.0.1.jar:5.0.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:96) ~[elasticsearch-5.0.1.jar:5.0.1]
at org.elasticsearch.cli.Command.main(Command.java:62) ~[elasticsearch-5.0.1.jar:5.0.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80) ~[elasticsearch-5.0.1.jar:5.0.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:73) ~[elasticsearch-5.0.1.jar:5.0.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:96) ~[elasticsearch-5.0.1.jar:5.0.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:155) ~[elasticsearch-5.0.1.jar:5.0.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286) ~[elasticsearch-5.0.1.jar:5.0.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:112) ~[elasticsearch-5.0.1.jar:5.0.1]
... 6 more
j'ai essayé de commencer par le passage à d'autres utilisateurs et essayé sudo ./elasticsearch
et j'ai obtenu le même message d'erreur.
Comment lancer la recherche élastique en tant qu'utilisateur root ?
6 réponses
vous ne pouvez pas lancer elasticsearch en tant que root. C'est interdit et super dangereux.
Lire le guide d'installation pour comprendre comment installer correctement en fonction de votre hôte.
cause de ce problème est: ElasticSearch n'est pas autorisé à courir depuis le propriétaire de la racine. Il y a une autre possibilité pour ce problème "Java path est défini pour l'utilisateur root seulement pas pour tous les autres utilisateurs". La Solution de ce problème:
Étape 1: modifier la propriété du répertoire elasticSearch de root à un autre utilisateur par commande. $sudo chown-R current_User: Group_Name elasticsearch-5.5.0
Setp 2: cochez Java set dans classpath pour actuel de l'utilisateur[non seulement pour racine]. Si la commande : $ java-version ou la commande echo $JAVA_HOME donnant un résultat vide. Cela signifie que nous devons définir Java dans classpath [système env variable] pour l'utilisateur courant, puis suivre L'Étape 3. sinon, lancez le service elasticsearch.
Étape 3: modifier/etc / profile et ajouter deux lignes selon votre dir système export JAVA_HOME= "Java dir location"
export PATH= $ JAVA_HOME / bin:$PATH Exécuter $source /etc/profile
après cela lancez le service elasticSearch. Cela a fonctionné parfaitement pour moi.
j'ai eu le même problème et j'ai dû me connecter avec un autre utilisateur. Mais d'abord, j'ai dû lui accorder les droits pour exécuter la bin/elasticsearch.
C'est une erreur courante exécuter bin/elasticsearch à partir du dossier racine.
Il y a deux façons de résoudre ce problème :
Method1: télécharger le fichier zip n décompresser puis commencer par la commande suivante
bin/elasticsearch -Des.insecure.allow.root=true -d
Method2:
vi bin/elasticsearch
ajouter une propriété pour allow root:
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
Enregistrer et fermer. vous pouvez commencer par root maintenant.
cela a déjà été demandé pour ES2 ( comment exécuter Elasticsearch 2.1.1 comme utilisateur root dans Linux machine)
La même solution peut fonctionner pour 5.
Comme indiqué précédemment, vous devriez probablement pas le cas..