Search code examples
centossonarqubecentos7sonarqube-ops

Sonarqube - service sonar does not support chkconfig in centos 7


Followed sonarqube setup instructions from below link. But executing chkconfig command failed. It is blocking me to start the sonarqube as service in centos7.

http://docs.sonarqube.org/display/SONAR/Running+SonarQube+as+a+Service+on+Linux

http://devopscube.com/setup-and-configure-sonarqube-on-linux/

[build@inches-jenkins-master ~]$ cat /etc/init.d/sonar
#! /usr/bin/sh

/usr/bin/sonar $*

[build@inches-jenkins-master ~]$ which sh
/usr/bin/sh

[build@inches-jenkins-master ~]$ ls -lrt /usr/bin/sonar
lrwxrwxrwx. 1 root root 50 Aug 30 16:59 /usr/bin/sonar -> /usr/local/sonarqube-6.0/bin/linux-x86-64/sonar.sh

[build@inches-jenkins-master init.d]$ sudo chkconfig --add sonar
service sonar does not support chkconfig

No issues while starting manually.

[build@inches-jenkins-master init.d]$ sudo sonar start
Starting SonarQube...
Started SonarQube.
[build@inches-jenkins-master init.d]$

Solution

  • your /etc/init.d/sonar file is incorrect, it should be :

    #!/bin/sh
    #
    # rc file for SonarQube
    #
    # chkconfig: 345 96 10
    # description: SonarQube system (www.sonarsource.org)
    #
    ### BEGIN INIT INFO
    # Provides: sonar
    # Required-Start: $network
    # Required-Stop: $network
    # Default-Start: 3 4 5
    # Default-Stop: 0 1 2 6
    # Short-Description: SonarQube system (www.sonarsource.org)
    # Description: SonarQube system (www.sonarsource.org)
    ### END INIT INFO
    
    /usr/bin/sonar $*
    

    I just tested it on CentOS 7.2 box and it works out of the box :

    wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.0.zip
    unzip sonarqube-6.0.zip
    sudo mv sonarqube-6.0 /opt
    sudo ln -s /opt/sonarqube-6.0/bin/linux-x86-64/sonar.sh /usr/bin/sonar
    sudo tee /etc/init.d/sonar <<-'EOF'
    #!/bin/sh
    #
    # rc file for SonarQube
    #
    # chkconfig: 345 96 10
    # description: SonarQube system (www.sonarsource.org)
    #
    ### BEGIN INIT INFO
    # Provides: sonar
    # Required-Start: $network
    # Required-Stop: $network
    # Default-Start: 3 4 5
    # Default-Stop: 0 1 2 6
    # Short-Description: SonarQube system (www.sonarsource.org)
    # Description: SonarQube system (www.sonarsource.org)
    ### END INIT INFO
    
    /usr/bin/sonar $*
    
    EOF
    
    sudo chmod 755 /etc/init.d/sonar
    # Enable sonar service
    sudo chkconfig --add sonar
    
    # Start service (systemd delegate to initd)
    sudo service sonar start
    # Stop service (systemd delegate to initd)
    sudo service sonar stop
    # Check Sonarqube log
    sudo tail -3 /opt/sonarqube-6.0/logs/sonar.log