Jenkins not able to access java : localhost jenkin

2019-07-24 23:03发布

I have installed and configured jenkins on the centos 7.I have added valid java path i.e "/usr/bin/java" in the file /etc/init.d/jenkins.

Below are the java path detils:

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

Now, on running "service jenkins start" command from root user, I am getting below error.

● 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.

I am not able to figure out why it's giving me permission denied even though every user having access to the java path.

also on running "journalctl -xe" command it shows below 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

Is it like that the Jenkins service does't having permission to access the java path? if not why it's giving that error?

3条回答
神经病院院长
2楼-- · 2019-07-24 23:03

Try changing the file, /etc/init.d/jenkins Specifically look for the JENKINS_USER key and try replacing jenkins with root.

This worked for me on RHEL.

查看更多
孤傲高冷的网名
3楼-- · 2019-07-24 23:09

You have two options to solve the problem.

  1. Jenkins service is started by jenkins user. The error says that jenkins user does not have permission to run java. So check orginal java path and give execute permissions to other users.
  2. In jenkins.service unit file, change the owner of the service. Replace User=jenkins with User=root
查看更多
Juvenile、少年°
4楼-- · 2019-07-24 23:19

The default user of service jenkins is "jenkins". So "jenkins" may not have the pemission to access service "java". So we need to change the use of service jenkins. From the jenkins service boost script "/etc/init.d/jenkins". We can get the config file path, such as "/etc/sysconfig/jenkins"

查看更多
登录 后发表回答