无法运行由Elasticsearch引起的Sonar Server无法以root身份运行

fir*_*baa 6 linux elasticsearch sonarqube

我正在尝试安装SonarQube:我已按照这些步骤操作:

设置SOnarQube Tuto:在这里

总结一下:

  • 下载声纳并将其移动到 /opt/sonar
  • 将这些coonfig步骤添加到/opt/sonar/conf/sonar.properties :

    sonar.jdbc.username = sonar sonar.jdbc.password = sonar

sonar.jdbc.url = JDBC:MySQL的://本地主机:3306 /声纳了useUnicode =真的characterEncoding = UTF8&rewriteBatchedStatements =真useConfigs = maxPerformance

sonar.web.host=127.0.0.1
sonar.web.context=/sonar
sonar.web.port=9000
Run Code Online (Sandbox Code Playgroud)
  • 实施声纳作为服务:

sudo cp /opt/sonar/bin/linux-x86-64/sonar.sh /etc/init.d/sonar

sudo gedit /etc/init.d/sonar
Run Code Online (Sandbox Code Playgroud)

插入两个新行:

SONAR_HOME=/opt/sonar
PLATFORM=linux-x86-64
Modify the following lines:

WRAPPER_CMD="${SONAR_HOME}/bin/${PLATFORM}/wrapper"
WRAPPER_CONF="${SONAR_HOME}/conf/wrapper.conf"
Run Code Online (Sandbox Code Playgroud)

...

PIDDIR="/var/run"
Register as a Linux service:

sudo update-rc.d -f sonar remove
sudo chmod 755 /etc/init.d/sonar
sudo update-rc.d sonar defaults
Run Code Online (Sandbox Code Playgroud)

在这些步骤之后:我试图从以下方式运行Sonar:localhost:9000/sonar并且在执行之后:sudo /etc/init.d/sonar start `奇怪的是,它没有运行.

所以,当我运行`须藤/etc/init.d/sonar状态,我发现它去几秒钟后步骤,它抛出它日志文件,像下面的一些错误:

es.log:

2017.12.09 18:05:14 ERROR es[][o.e.b.Bootstrap] Exception
java.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) ~[elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) [elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) [elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) [elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70) [elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) [elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) [elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) [elasticsearch-5.6.3.jar:5.6.3]
2017.12.09 18:05: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.3.jar:5.6.3]
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) ~[elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70) ~[elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) ~[elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) ~[elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) ~[elasticsearch-5.6.3.jar:5.6.3]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) ~[elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) ~[elasticsearch-5.6.3.jar:5.6.3]
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) ~[elasticsearch-5.6.3.jar:5.6.3]
    ... 6 more
Run Code Online (Sandbox Code Playgroud)

有什么建议 ??

Jer*_*ier 20

SonarSource升级了Elasticsearch工具,该工具是最新的SonarQube LTS版本的一部分.因此,SonarQube无法作为root运行.请参阅博客和SonarQube 6.6升级说明以及此SO问题.


小智 5

更改声纳文件的根访问权限。尝试在普通用户访问下运行。

chown <another user>:<user group> sonar.sh
Run Code Online (Sandbox Code Playgroud)

  • 更改文件的所有权不会影响其在运行时拥有的权限,除非设置了 setuid。 (2认同)