Jenkins无法访问java:localhost jenkins [807]:启动Jenkins bash:/ usr/bin/java:权限被拒绝

Abh*_*ute 1 permission-denied jenkins jenkins-cli

我在centos 7上安装并配置了jenkins.我在/etc/init.d/jenkins文件中添加了有效的java路径,即"/ usr/bin/java" .

以下是java路径detils:

lrwxrwxrwx. 1 root root 22 Dec 24  2015 java -> /etc/alternatives/java
Run Code Online (Sandbox Code Playgroud)

现在,从root用户运行"service jenkins start"命令时,我收到以下错误.

? 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.
Run Code Online (Sandbox Code Playgroud)

即使每个用户都有权访问java路径,我也无法弄清楚为什么它会拒绝我的权限.

还运行"journalctl -xe"命令,它显示在下面的日志:

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
Run Code Online (Sandbox Code Playgroud)

是不是Jenkins服务没有权限访问java路径?如果不是为什么它会给出错误?

小智 6

您有两种方法可以解决问题.

  1. Jenkins服务由jenkins用户启动.该错误表明jenkins用户没有运行java的权限.因此,请检查原始java路径并向其他用户授予执行权限.
  2. 在jenkins.service单元文件中,更改服务的所有者.替换User=jenkinsUser=root