首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从SonarQube 6.5升级到6.6后,获取elasticsearch“无法以根用户身份运行”错误。其他什么也没变

从SonarQube 6.5升级到6.6后,获取elasticsearch“无法以根用户身份运行”错误。其他什么也没变
EN

Stack Overflow用户
提问于 2017-10-21 05:38:16
回答 4查看 20.3K关注 0票数 19

从SonarQube 6.5升级到6.6后,获取elasticsearch“无法以根用户身份运行”错误。其他的都没变。

Java6.8版(最终版) CentOS (TM) SE运行时环境(内部版本1.8.0_101-b13)

代码语言:javascript
运行
复制
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
EN

回答 4

Stack Overflow用户

发布于 2017-10-31 20:29:38

我也遇到过这个问题,在CentOS7上以根用户身份运行SonarQube,而不是在docker内部。正如在前面的评论中提到的,问题来自于SonarQube升级ElasticSearch,新版本不再允许自己以根用户身份运行。

在我的环境中,修复非常简单:我已经创建了一个用户("sonar")和一个组("sonar")来“拥有”sonarqube文件。因为我的SonarQube进程一直是以根用户身份运行的,所以它将日志和临时文件留给了根用户。

  1. 我停止了服务。
  2. 将所有所有权("chown -R sonar:sonar -R #RUN_AS_USER= in /opt/sonarqube-6.6/bin/linux-x86-64/sonar.sh line 48“)重新分配给RUN_AS_USER=sonar,并且sonarqube服务和它的elasticsearch服务都重新启动,没有进一步的问题。我不得不去http://<sonarhost:port>/setup升级数据库,从那以后一切都很好。
票数 41
EN

Stack Overflow用户

发布于 2018-05-23 16:26:29

systemd中的更改:

代码语言:javascript
运行
复制
User=sonar
Group=sonar

并更改它将运行的所有源代码和#RUN_AS_USER=sonar。在root下运行,然后对声纳执行su命令时,似乎会出现环境错误

票数 2
EN

Stack Overflow用户

发布于 2019-04-24 02:20:17

面对同样的问题,在我的声纳服务文件中做一些修改,它就开始工作了。下面是我的声纳服务文件

代码语言:javascript
运行
复制
[Unit]
Description=SonarQube service
After=syslog.target network.target

[Service]
Type=forking
#Type=simple
User=sonar
Group=sonar
PermissionsStartOnly=true
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
StandardOutput=syslog
LimitNOFILE=65536
LimitNPROC=8192
#TimeoutStartSec=5
Restart=always

[Install]
WantedBy=multi-user.target

还可以更改声纳用户的主目录

代码语言:javascript
运行
复制
$ usermod -d /opt/sonarqube sonar
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46857688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档