Obtenir l'erreur "ne peut pas fonctionner en tant que root" après la mise à niveau de SonarQube 6.5 vers 6.6. Rien d'autre n'a changé.
Version CentOS 6.8 (version finale) Environnement d'exécution Java SE (version 1.8.0_101-b13)
Java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.Java:106) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.Java:195) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.Java:342) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.Java:132) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.Java:123) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.Java:67) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.Java:134) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.cli.Command.main(Command.Java:90) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.Java:91) [elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.Java:84) [elasticsearch-5.6.2.jar:5.6.2]
2017.10.20 11:59:14 WARN es[][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:136) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.Java:123) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.Java:67) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.Java:134) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.cli.Command.main(Command.Java:90) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.Java:91) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.Java:84) ~[elasticsearch-5.6.2.jar:5.6.2]
Caused by: Java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.Java:106) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.Java:195) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.Java:342) ~[elasticsearch-5.6.2.jar:5.6.2]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.Java:132) ~[elasticsearch-5.6.2.jar:5.6.2]
... 6 more
J'ai également rencontré ce problème en exécutant SonarQube en tant que root sur Centos 7 et non à l'intérieur du menu fixe. Comme mentionné dans les commentaires précédents, le problème provient de la mise à niveau de ElasticSearch par SonarQube, et la nouvelle version ne peut plus être exécutée en tant que root.
Dans mon environnement, le correctif était assez simple: j'avais déjà créé un utilisateur ("sonar") et un groupe ("sonar") pour "posséder" les fichiers sonarqube. Depuis que mon processus SonarQube s’exécutait en tant que root, il laissait les journaux et les fichiers temporaires appartenant à root.
1. J'ai arrêté le service.
2. Réassignation de tous les propriétaires ("chown -R sonar: sonar /opt/sonarqube-6.6")
3. #RUN_AS_USER=
dans /opt/sonarqube-6.6/bin/linux-x86-64/sonar.sh
ligne 48 a été remplacé par RUN_AS_USER=sonar
et le service sonarqube et son service elasticsearch ont redémarré sans autre problème. Il me restait à aller à http://<sonarhost:port>/setup
pour mettre à jour la base de données et à partir de là, tout fonctionnait bien.
Changement de système:
User=sonar
Group=sonar
et changez toutes les sources et #RUN_AS_USER=sonar
Il semble que l’erreur dans l’environnement s’exécute en root puis en su sonar
J'ai téléchargé sonarqube-6.5 et essayé de créer un nouvel utilisateur "sonar", mais cela échoue toujours pour la même raison: Ubuntu 16.4.