SonarQube 7.2无法在CentOS 7上以systemd开头

时间:2018-08-03 13:08:15

标签: linux centos sonarqube centos7 systemd

我在VM上安装了CentOS7,并尝试正确安装SonarQube 7.2.1。因此,我遵循this tutorial并安装PostgreSQL而不是MariaDB。我按照他们说的那样编辑sonar.properties,并正确安装了Java 8。

当我想从sudo systemctl start sonar开始时,我遇到了一个错误,所以我 journalctl -xesystemctl status sonar.service

第一个返回我

L'unité (unit) sonar.service a commencé à démarrer.
août 03 14:20:44 localhost.localdomain bash[19570]: /bin/bash: /home/enovia/sonarqube-7.2.1/bin/linux-x86-64/sonar.sh: Aucun fichier ou dossier de ce type
août 03 14:20:44 localhost.localdomain systemd[1]: sonar.service: control process exited, code=exited status=127
août 03 14:20:44 localhost.localdomain systemd[1]: Failed to start SonarQube Service.
-- Subject: L'unité (unit) sonar.service a échoué
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

第二个

sonar.service - SonarQube Service
   Loaded: loaded (/etc/systemd/system/sonar.service; enabled; vendor preset: disabled)

  Active: activating (auto-restart) (Result: exit-code) since ven. 2018-08-03 14:41:14 CEST; 3s ago

 Process: 21093 ExecStart=/bin/bash /home/enovia/sonarqube-7.2.1/bin/linux-x86-64/sonar.sh start (code=exited, status=127)


août 03 14:41:14 localhost.localdomain systemd[1]: sonar.service: control process exited, code=exited status=127

août 03 14:41:14 localhost.localdomain systemd[1]: Failed to start SonarQube Service.

août 03 14:41:14 localhost.localdomain systemd[1]: Unit sonar.service entered failed state.

août 03 14:41:14 localhost.localdomain systemd[1]: sonar.service failed.

这是我的sonar.properties:

sonar.jdbc.username=sonar

sonar.jdbc.password=DatabasePass

sonar.jdbc.url=jdbc:postgresql://localhost/sonar

sonar.web.port=10900

声纳日志文件:

`

--> Wrapper Started as Daemon
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

2018.07.30 15:50:44 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /home/enovia/Bureau/sonarqube-7.2.1/temp
2018.07.30 15:50:44 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2018.07.30 15:50:45 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/home/enovia/Bureau/sonarqube-7.2.1/elasticsearch]: /home/enovia/Bureau/sonarqube-7.2.1/elasticsearch/bin/elasticsearch -Epath.conf=/home/enovia/Bureau/sonarqube-7.2.1/temp/conf/es
2018.07.30 15:50:45 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
2018.07.30 15:50:58 INFO  app[][o.e.p.PluginsService] no modules loaded
2018.07.30 15:50:58 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2018.07.30 15:52:30 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
2018.07.30 15:52:32 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/home/enovia/Bureau/sonarqube-7.2.1]: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/home/enovia/Bureau/sonarqube-7.2.1/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:/home/enovia/Bureau/sonarqube-7.2.1/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.server.app.WebServer /home/enovia/Bureau/sonarqube-7.2.1/temp/sq-process8191574965959719695properties
2018.07.30 15:53:36 INFO  app[][o.s.a.SchedulerImpl] Process [web] is stopped
2018.07.30 15:53:38 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
2018.07.30 15:53:38 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
2018.07.30 15:53:38 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143
<-- Wrapper Stopped
--> Wrapper Started as Daemon
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

2018.07.31 12:05:33 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /home/enovia/Bureau/sonarqube-7.2.1/temp
2018.07.31 12:05:33 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2018.07.31 12:05:34 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/home/enovia/Bureau/sonarqube-7.2.1/elasticsearch]: /home/enovia/Bureau/sonarqube-7.2.1/elasticsearch/bin/elasticsearch -Epath.conf=/home/enovia/Bureau/sonarqube-7.2.1/temp/conf/es
2018.07.31 12:05:34 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
Startup failed: Timed out waiting for signal from JVM.
JVM did not exit on request, terminated
JVM exited on its own while waiting to kill the application.
JVM exited in response to signal SIGKILL (9).
JVM Restarts disabled.  Shutting down.
<-- Wrapper Stopped
--> Wrapper Started as Daemon
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

2018.07.31 12:15:56 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /home/enovia/Bureau/sonarqube-7.2.1/temp
2018.07.31 12:15:56 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2018.07.31 12:15:57 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/home/enovia/Bureau/sonarqube-7.2.1/elasticsearch]: /home/enovia/Bureau/sonarqube-7.2.1/elasticsearch/bin/elasticsearch -Epath.conf=/home/enovia/Bureau/sonarqube-7.2.1/temp/conf/es
2018.07.31 12:15:57 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2018.07.31 12:15:58 INFO  app[][o.e.p.PluginsService] no modules loaded
2018.07.31 12:15:58 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2018.07.31 12:16:08 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
2018.07.31 12:16:08 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/home/enovia/Bureau/sonarqube-7.2.1]: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/home/enovia/Bureau/sonarqube-7.2.1/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:/home/enovia/Bureau/sonarqube-7.2.1/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.server.app.WebServer /home/enovia/Bureau/sonarqube-7.2.1/temp/sq-process4251581204595748290properties
2018.07.31 12:16:25 INFO  app[][o.s.a.SchedulerImpl] Process [web] is stopped
2018.07.31 12:16:25 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
2018.07.31 12:16:25 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
2018.07.31 12:16:25 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143
<-- Wrapper Stopped
--> Wrapper Started as Daemon
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

2018.08.01 13:41:07 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /home/enovia/sonarqube-7.2.1/temp
2018.08.01 13:41:07 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2018.08.01 13:41:07 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/home/enovia/sonarqube-7.2.1/elasticsearch]: /home/enovia/sonarqube-7.2.1/elasticsearch/bin/elasticsearch -Epath.conf=/home/enovia/sonarqube-7.2.1/temp/conf/es
2018.08.01 13:41:07 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2018.08.01 13:41:09 INFO  app[][o.e.p.PluginsService] no modules loaded
2018.08.01 13:41:09 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2018.08.01 13:41:10 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 1
2018.08.01 13:41:10 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
2018.08.01 13:41:10 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
<-- Wrapper Stopped
--> Wrapper Started as Daemon
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

2018.08.01 15:17:17 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /home/enovia/sonarqube-7.2.1/temp
2018.08.01 15:17:17 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2018.08.01 15:17:18 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/home/enovia/sonarqube-7.2.1/elasticsearch]: /home/enovia/sonarqube-7.2.1/elasticsearch/bin/elasticsearch -Epath.conf=/home/enovia/sonarqube-7.2.1/temp/conf/es
2018.08.01 15:17:18 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2018.08.01 15:17:18 INFO  app[][o.e.p.PluginsService] no modules loaded
2018.08.01 15:17:18 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2018.08.01 15:17:20 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 1
2018.08.01 15:17:20 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
2018.08.01 15:17:20 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
<-- Wrapper Stopped
--> Wrapper Started as Daemon
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

2018.08.01 15:18:01 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /home/enovia/sonarqube-7.2.1/temp

WrapperSimpleApp: Encountered an error running main: java.nio.file.AccessDeniedException: /home/enovia/sonarqube-7.2.1/temp/conf/es/elasticsearch.yml
java.nio.file.AccessDeniedException: /home/enovia/sonarqube-7.2.1/temp/conf/es/elasticsearch.yml
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:244)
    at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
    at java.nio.file.Files.delete(Files.java:1126)
    at org.sonar.process.FileUtils2$DeleteRecursivelyFileVisitor.visitFile(FileUtils2.java:170)
    at org.sonar.process.FileUtils2$DeleteRecursivelyFileVisitor.visitFile(FileUtils2.java:165)
    at java.nio.file.Files.walkFileTree(Files.java:2670)
    at java.nio.file.Files.walkFileTree(Files.java:2742)
    at org.sonar.process.FileUtils2.deleteDirectoryImpl(FileUtils2.java:127)
    at org.sonar.process.FileUtils2.deleteDirectory(FileUtils2.java:112)
    at org.sonar.application.AppFileSystem$CleanTempDirFileVisitor.visitFile(AppFileSystem.java:117)
    at org.sonar.application.AppFileSystem$CleanTempDirFileVisitor.visitFile(AppFileSystem.java:101)
    at java.nio.file.Files.walkFileTree(Files.java:2670)
    at org.sonar.application.AppFileSystem.createOrCleanTempDirectory(AppFileSystem.java:96)
    at org.sonar.application.AppFileSystem.reset(AppFileSystem.java:62)
    at org.sonar.application.App.start(App.java:55)
    at org.sonar.application.App.main(App.java:78)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
    at java.lang.Thread.run(Thread.java:748)
<-- Wrapper Stopped
--> Wrapper Started as Daemon
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

2018.08.01 15:38:18 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /etc/sonarqube-7.2.1/temp
2018.08.01 15:38:18 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2018.08.01 15:38:18 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/etc/sonarqube-7.2.1/elasticsearch]: /etc/sonarqube-7.2.1/elasticsearch/bin/elasticsearch -Epath.conf=/etc/sonarqube-7.2.1/temp/conf/es
2018.08.01 15:38:18 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2018.08.01 15:38:19 INFO  app[][o.e.p.PluginsService] no modules loaded
2018.08.01 15:38:19 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2018.08.01 15:38:29 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
2018.08.01 15:38:29 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/etc/sonarqube-7.2.1]: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/etc/sonarqube-7.2.1/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:/etc/sonarqube-7.2.1/lib/jdbc/mysql/mysql-connector-java-5.1.46.jar org.sonar.server.app.WebServer /etc/sonarqube-7.2.1/temp/sq-process1389488387217549973properties
2018.08.01 15:38:46 INFO  app[][o.s.a.SchedulerImpl] Process [web] is stopped
2018.08.01 15:38:46 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
2018.08.01 15:38:46 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143
2018.08.01 15:38:46 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
<-- Wrapper Stopped

4 个答案:

答案 0 :(得分:1)

我最近在Centos 7.6上使用SonarQube 7.6遇到了这个sonarqube restarting issue,这花了我的CICD配置时间!因此,分享此想法可能会节省其他人的时间! 几乎没有什么可以寻找和更新的东西了。

  1. 确保/var/lib/pgsql/9.6/data/pg_hba.conf的更新如下:

    enter image description here

  2. 确保PostgreSQL数据库具有其自己的用户sonar,并创建了一个名为sonar的数据库。而且,显然,数据库用户sonar应该拥有这个sonar数据库。就我而言,我同时使用sonar作为数据库用户名和实际数据库名,但是您可以随意使用任何名称。

  3. 确保下载并提取SonarQube之后,将sonarqube移到/op/目录:

    sudo mv sonarqube-7.6 / opt / sonarqube

    然后/opt/sonarqube目录由sonarqube的Linux用户拥有,在我的情况下为sonar

  4. 确保在创建和编辑/etc/systemd/system/sonar.service文件之后,该文件也由sonarqube linux用户拥有。

  5. /etc/systemd/system/sonar.service文件的内容应类似于以下内容:

    [单位]

    Description = SonarQube服务

    After = syslog.target network.target

    [服务]

    Type = forking

    ExecStart = / opt / sonarqube / bin / linux-x86-64 / sonar.sh start

    ExecStop = / opt / sonarqube / bin / linux-x86-64 / sonar.sh停止

    User = sonar

    Group =声纳

    Restart =总是

    [安装]

    WantedBy = multi-user.target

    注意UserGroup指向Linux声纳用户,我的用户是sonar。您可以是johndoe

  6. 使用{p>编辑/opt/sonarqube/bin/linux-x86-64/sonar.sh并更新#RUN_AS_USER

    RUN_AS_USER =声纳

    请注意,这也是Linux sonarqube用户,我的用户是sonar

  7. SonarQube似乎是一个JAVA内存匮乏的Web应用程序。因此,请遵循此post更新相关的内存配置。请记住,该帖子基于Centos 7.6。如果您对Linux有所了解,则需要更新相关文件。

  8. 别忘了重新启动PostgreSQL,Sonar Service和NGINX(如果您是传递给Sonar的代理)

    sudo systemctl重新启动postgresql-9.6 && sudo systemctl重新启动声纳&& sudo systemctl重新启动nginx

  9. 检查所有这些服务的状态,并确保它们均处于active / running状态:

    sudo systemctl状态postgresql-9.6 && sudo systemctl状态声纳&& sudo systemctl状态nginx

希望获得帮助!

答案 1 :(得分:0)

更新sonar.sh文件中的 RUN_AS_USER 属性,然后重新启动SonarQube。

还要确保SonarQube目录中没有与权限相关的问题,以便更安全地运行chown user:user -R / home / SonarQube_home

答案 2 :(得分:0)

wheel用户是一种root用户,因此我从该组中删除了声纳用户。之后,我将无法访问保留给root用户的systemctl(systemd)命令。因此,我尝试使用sonar.sh启动声纳,并且可以正常工作。

感谢所有帮助我的人,我希望这篇文章能为centOS上与我有相同问题的人提供帮助:)

答案 3 :(得分:0)

我最近在7.7版中遇到了相同的问题。最初,我遇到了同样的问题,该服务无法正常启动,但是调用sonar.sh脚本就可以了。

对我有用的解决方案是确保服务文件引用了可以创建PID文件的目录:

PIDFile = / opt / sonar / bin / linux-x86-64 /./ SonarQube.pid

当然要确保: 为您的服务中调用的用户(即用户“声纳”)在/ opt / sonar /上正确设置了权限!

以下完整的服务文件:

[Unit]
Description=SonarQube application
After=syslog.target network.target

[Service]
User=sonar
Group=sonar

Type=simple
ExecStart=/opt/sonar/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonar/bin/linux-x86-64/sonar.sh stop
ExecReload=/opt/sonar/bin/linux-x86-64/sonar.sh restart
PIDFile=/opt/sonar/bin/linux-x86-64/./SonarQube.pid

[Install]
WantedBy=multi-user.target