我有一个CentOS服务器,我正在尝试将jenkins作为服务运行:
service jenkins start
我正在以root
用户身份运行,我收到了此回复:
Starting Jenkins bash: /usr/bin/java: No such file or directory
[FAILED]
我已经echo
向命令行添加了一些内容:
[root@xyz opt]# echo $JAVA_HOME
/opt/jdk
[root@xyz opt]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/opt/jdk/bin:/opt/grails/bin
[root@xyz opt]# java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
[root@xyz opt]# which java
/opt/jdk/bin/java
我在任何jenkins文件中都看不到任何java配置。有什么想法吗?
答案 0 :(得分:5)
Jenkins需要java启动,在
/usr/bin/
目录java
中你的情况不可用
如果您转到/etc/init.d/
并打开jenkins
文件,您会找到:
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.6.0/bin/java
/usr/lib/jvm/jre-1.6.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/bin/java
"
这些是jenkins查找java的路径,在您的情况下,java不存在于上述任何路径中。
所以寻找你拥有java的路径并在上面的jenkins文件中添加该路径。
由于您在/opt/jdk/bin
中使用了java,因此请在jenkins
文件中添加:
candidates="
/opt/jdk/bin/java <----Add here
/etc/alternatives/java
/usr/lib/jvm/java-1.6.0/bin/java
/usr/lib/jvm/jre-1.6.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/bin/java
"
答案 1 :(得分:1)
尝试使用以下方法修复它:
ln -s /opt/jdk/bin/java /usr/bin/java
服务实用程序正在使用的脚本文件可能是/etc/init.d/jenkins 你也可以编辑这个文件......