SonarQube遇到的啟動問題及解決方案


操作系統:centos 7 (x86)
一、問題描述:使用root啟動時,一直反饋 SonarQube is not running
問題原因:不能夠使用root用戶進行啟動
解決方案:①創建一個其他用戶(如sonar) adduser sonar 設置密碼 passwd sonar
②更改sonarqube的安裝目錄的用戶組 chown -R sonar:sonar sonarqube-XXX
③切換用戶啟動 su sonar xxxx/sonar.sh start
二、啟動時可能會遇到一個現象, 服務一會掛掉或者啟動不起來,使用sonar.sh console 命令查看后,輸出日志如下:

wrapper | --> Wrapper Started as Console
wrapper | Launching a JVM...
jvm 1 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.
jvm 1 |
jvm 1 | 2020.09.14 23:51:49 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqu
jvm 1 | 2020.09.14 23:51:49 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
jvm 1 | 2020.09.14 23:51:49 ERROR app[][o.s.a.p.ManagedProcessHandler] Fail to launch process [es]
jvm 1 | java.lang.IllegalStateException: Cannot write Elasticsearch yml settings file
jvm 1 | at org.sonar.application.es.EsYmlSettings.writeToYmlSettingsFile(EsYmlSettings.java:53)
jvm 1 | at org.sonar.application.ProcessLauncherImpl.writeConfFiles(ProcessLauncherImpl.java:151)
jvm 1 | at org.sonar.application.ProcessLauncherImpl.launch(ProcessLauncherImpl.java:84)
jvm 1 | at org.sonar.application.SchedulerImpl.lambda$tryToStartProcess$2(SchedulerImpl.java:196)
jvm 1 | at org.sonar.application.process.ManagedProcessHandler.start(ManagedProcessHandler.java:73)
jvm 1 | at org.sonar.application.SchedulerImpl.tryToStartProcess(SchedulerImpl.java:194)
jvm 1 | at org.sonar.application.SchedulerImpl.tryToStartEs(SchedulerImpl.java:146)
jvm 1 | at org.sonar.application.SchedulerImpl.tryToStartAll(SchedulerImpl.java:138)
jvm 1 | at org.sonar.application.SchedulerImpl.schedule(SchedulerImpl.java:112)
jvm 1 | at org.sonar.application.App.start(App.java:69)
jvm 1 | at org.sonar.application.App.main(App.java:98)
jvm 1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jvm 1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jvm 1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.j
jvm 1 | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
jvm 1 | at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
jvm 1 | at java.base/java.lang.Thread.run(Thread.java:834)
jvm 1 | Caused by: java.nio.file.AccessDeniedException: /opt/sonarqube-7.6/temp/conf/es/elasticsearch.yml
jvm 1 | at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
jvm 1 | at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)

 


問題原因: 用root啟動過會創建temp目錄,該目錄為root用戶所有,使用自己創建的sonar用戶啟動時就會報錯
解決方案:使用root用戶修改該文件夾的用戶組(temp),讓它屬於sonarqube的啟動用戶(自己創建的那個),再次啟動就ok了

chown -Rf sonar:sonar /opt/sonarqube-7.6/temp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM