2016-07-13 21 views
0

Ich habe jenkins auf dem centos installiert und konfiguriert 7.Ich habe einen gültigen java Pfad hinzugefügt ie "/usr/bin/java "in der Datei /etc/init.d/jenkins.Jenkins kann nicht auf java zugreifen: localhost jenkins [807]: Starten von Jenkins bash:/usr/bin/java: Berechtigung verweigert

Unten sind die Java-Pfad detils:

lrwxrwxrwx. 1 root root 22 Dec 24 2015 java -> /etc/alternatives/java 

nun auf running "Service jenkins starten" Befehl von Benutzer root, ich unten Störung erhalte.

● jenkins.service - LSB: Jenkins Continuous Integration Server 
    Loaded: loaded (/etc/rc.d/init.d/jenkins) 
    Active: failed (Result: exit-code) since Wed 2016-07-13 18:25:51 IST; 5s ago 
    Docs: man:systemd-sysv-generator(8) 
    Process: 807 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE) 

Jul 13 18:25:51 localhost systemd[1]: Starting LSB: Jenkins Continuous Integration Server... 
Jul 13 18:25:51 localhost runuser[812]: pam_unix(runuser:session): session opened for user jenkins by (uid=0) 
Jul 13 18:25:51 localhost jenkins[807]: Starting Jenkins bash: /usr/bin/java: Permission denied 
Jul 13 18:25:51 localhost runuser[812]: pam_unix(runuser:session): session closed for user jenkins 
Jul 13 18:25:51 localhost jenkins[807]: [FAILED] 
Jul 13 18:25:51 localhost systemd[1]: jenkins.service: control process exited, code=exited status=1 
Jul 13 18:25:51 localhost systemd[1]: Failed to start LSB: Jenkins Continuous Integration Server. 
Jul 13 18:25:51 localhost systemd[1]: Unit jenkins.service entered failed state. 
Jul 13 18:25:51 localhost systemd[1]: jenkins.service failed. 

Ich bin nicht in der Lage, um herauszufinden, warum es mir die Erlaubnis sogar geleugnet zu geben, obwohl jeder Benutzer auf den Java-Pfad Zugriff hat.

auch auf running "journalctl -xe" Befehl zeigt es unter log:

Jul 13 18:45:33 localhost systemd[1]: Unit jenkins.service entered failed state. 
Jul 13 18:45:33 localhost systemd[1]: jenkins.service failed. 
Jul 13 18:45:33 localhost polkitd[20151]: Unregistered Authentication Agent for unix-process:27889:3161602 (system bus name :1.303, object path /org/freedesktop/PolicyKit1/AuthenticationAgen 

Ist es so, dass die Jenkins Service does Erlaubnis der Java-Pfad zugreifen zu müssen? wenn nicht, warum gibt es diesen Fehler?

+1

In der Datei jenkins.service unit kann der Eigentümer des Dienstes als jenkins definiert werden. Trotz der Ausführung als root versucht der Dienst mit dem Benutzer jenkins zu arbeiten. Sie können versuchen, 'User = root' in der Service-Unit-Datei zu ändern. – sozkul

+0

Es funktionierte wie ein Champion. –

+1

Ok, aber es ist ein besserer Weg, dem Benutzer von jenkins die Erlaubnis zu geben. Überprüfe also den '/ etc/alternatives/java' Symbol Link, finde den orginal Java Pfad. Überprüfen Sie die Berechtigungen. – sozkul

Antwort

4

Sie haben zwei Möglichkeiten, das Problem zu lösen.

  1. Jenkins-Service wird von Jenkins-Benutzer gestartet. Der Fehler besagt, dass der Benutzer jenkins keine Berechtigung zum Ausführen von Java hat. Überprüfen Sie also den ursprünglichen Java-Pfad und erteilen Sie anderen Benutzern Ausführungsrechte.
  2. Ändern Sie in der Datei jenkins.service unit den Eigentümer des Dienstes. Ersetzen Sie User=jenkins durch User=root
+0

Bitte lassen Sie mich wissen, wo ich die 'jenkins.service' Datei finde – Varun

1

Der Standardbenutzer von Service Jenkins ist "Jenkins". So kann "jenkins" nicht die Berechtigung haben, auf den Dienst "java" zuzugreifen. Also müssen wir die Verwendung von Service Jenkins ändern. Aus dem Jenkins-Service-Boost-Skript "/etc/init.d/jenkins". Wir können den Pfad der Konfigurationsdatei abrufen, z. B. "/ etc/sysconfig/jenkins"