web-dev-qa-db-fra.com

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é

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
13
Raye Raskin

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.

31
John Elion

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.

0
nimish