V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wsds
V2EX  ›  程序员

jenkins 这货启动不起来,怎么搞

  •  
  •   wsds · 2018-05-12 11:31:35 +08:00 · 5894 次点击
    这是一个创建于 2387 天前的主题,其中的信息可能已经有所发展或是发生改变。

    启动的时候,提示存在不正确的 java1.7 版本,但我的版本是 1.8 啊,什么鬼,启动不起来

    root@root-59:~$ ps -ef|grep jenkins
    
    root 25034  1931  0 11:26 pts/17   00:00:00 grep --color=auto jenkins
    
    root@root-59:~$ sudo service jenkins start
    [sudo] password for root: 
    
    Found an incorrect Java version
    Java version found:
    java version "1.7.0_171"
    OpenJDK Runtime Environment (IcedTea 2.6.13) (7u171-2.6.13-0ubuntu0.14.04.2)
    OpenJDK 64-Bit Server VM (build 24.171-b02, mixed mode)
    
    Aborting
    
    root@root-59:~$ java -version
    
    java version "1.8.0_66"
    Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
    Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
    root@root-59:~$ 
    
    
    
    第 1 条附言  ·  2018-05-12 15:36:53 +08:00

    find出来一个1。7版本的jdk,但我默认的还是1。8啊

    2v38k6.png

    2v3AHT.png

    第 2 条附言  ·  2018-05-15 09:24:26 +08:00

    jenkins日志:

    23ICz0.png

    31 条回复    2020-12-04 16:41:09 +08:00
    UndefinedDiary
        1
    UndefinedDiary  
       2018-05-12 11:34:38 +08:00 via Android
    Jenkins 什么版本的??去官网看看依赖的 jdk 需要那个版本。。。
    wsds
        2
    wsds  
    OP
       2018-05-12 11:41:32 +08:00
    @UndefinedDiary 前 2 天还运行的好好的,不知道怎么停了,然后就启动不了了,应该不是版本问题吧
    defunct9
        3
    defunct9  
       2018-05-12 11:45:34 +08:00 via iPhone
    开 ssh,让我上去看看
    wsds
        4
    wsds  
    OP
       2018-05-12 11:56:33 +08:00
    @defunct9 内网啊
    UndefinedDiary
        5
    UndefinedDiary  
       2018-05-12 11:59:56 +08:00 via Android
    @wsds 有多个 jdk ?!
    mringg
        6
    mringg  
       2018-05-12 12:07:47 +08:00 via iPhone
    因为你用 sudo 了 搜下 sudo 环境变量 了解一下
    wanghanlin
        7
    wanghanlin  
       2018-05-12 12:31:56 +08:00
    用 docker 的,省力
    wsds
        8
    wsds  
    OP
       2018-05-12 12:41:11 +08:00
    @UndefinedDiary 目测至少有 2 个
    wsds
        9
    wsds  
    OP
       2018-05-12 12:41:51 +08:00
    @mringg 用不用 sudo 都一样
    qinxi
        10
    qinxi  
       2018-05-12 12:55:21 +08:00 via Android
    卸载 openjdk,结帖
    privatezcoding
        11
    privatezcoding  
       2018-05-12 13:03:22 +08:00
    设置一下 Java 的环境变量试试看
    carlclone
        12
    carlclone  
       2018-05-12 13:04:53 +08:00 via Android
    关机睡觉,结贴
    zqcolor
        13
    zqcolor  
       2018-05-12 13:13:02 +08:00
    试试下面几个命令选择 java 8

    https://askubuntu.com/questions/315646/update-java-alternatives-vs-update-alternatives-config-java

    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    sudo update-alternatives --config javadoc
    wsds
        14
    wsds  
    OP
       2018-05-12 13:40:59 +08:00
    @zqcolor 没用啊

    root@root-59:~$ sudo update-alternatives --config java
    [sudo] password for root:

    There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
    Nothing to configure.

    root@root-59:~$ sudo update-alternatives --config javac
    update-alternatives: error: no alternatives for javac

    root@root-59:~$ sudo update-alternatives --config javadoc
    update-alternatives: error: no alternatives for javadoc
    shynome
        15
    shynome  
       2018-05-12 13:57:24 +08:00 via Android
    如果只做 ci/cd , 可以试试 drone.io
    qkline
        16
    qkline  
       2018-05-12 14:01:17 +08:00
    明显是 openjdk 搞的鬼,卸载就行了
    sutra
        17
    sutra  
       2018-05-12 14:06:14 +08:00
    root@jenkins:~ # grep java_home /usr/local/etc/rc.d/jenkins
    # jenkins_java_home (str):
    : ${jenkins_java_home="/usr/local/openjdk8"}
    java_cmd="${jenkins_java_home}/bin/java"
    defunct9
        18
    defunct9  
       2018-05-12 15:22:12 +08:00 via iPhone
    @wsds 开不了 ssh,我也没办法。明显 jenkins 的 java 和你起的不是一个。
    vjnjc
        19
    vjnjc  
       2018-05-12 17:18:17 +08:00 via Android
    Jenkins 的用户和你不是同一个,所以你们的环境也不一样,所以他用 Java7,你用 Java8
    kaneg
        20
    kaneg  
       2018-05-12 22:48:44 +08:00 via iPhone
    因为系统环境的千差万别,这种 Java 多版本引起的问题很常见,所以用 docker 这种专门解决环境差异的方案是终极解决之道
    zhantss
        21
    zhantss  
       2018-05-12 22:52:34 +08:00
    安装版的 jenkins,默认是创建了一个 jenkins 用户,改这个用户的配置就行
    防止发生意外可以改 /etc/default/jenkins 里面的设置,不一定是这个位置,你可以查一下对应软件包的配置文件位置
    tedzhou1221
        22
    tedzhou1221  
       2018-05-13 02:26:50 +08:00 via Android
    Docker Jenkins 更方便,哈哈
    zqcolor
        23
    zqcolor  
       2018-05-13 13:03:30 +08:00
    那就卸载这个 openjdk7
    /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

    然后安装 jdk 8 试试
    wsds
        24
    wsds  
    OP
       2018-05-14 18:50:33 +08:00
    @zhantss 有这个文件,要改什么内容啊

    # defaults for Jenkins automation server

    # pulled in from the init script; makes things easier.
    NAME=jenkins

    # arguments to pass to java

    # Allow graphs etc. to work even when an X server is present
    JAVA_ARGS="-Djava.awt.headless=true"

    #JAVA_ARGS="-Xmx256m"

    # make jenkins listen on IPv4 address
    #JAVA_ARGS="-Djava.net.preferIPv4Stack=true"

    PIDFILE=/var/run/$NAME/$NAME.pid

    # user and group to be invoked as (default to jenkins)
    JENKINS_USER=$NAME
    JENKINS_GROUP=$NAME

    # location of the jenkins war file
    JENKINS_WAR=/usr/share/$NAME/$NAME.war

    # jenkins home location
    JENKINS_HOME=/var/lib/$NAME

    # set this to false if you don't want Jenkins to run by itself
    # in this set up, you are expected to provide a servlet container
    # to host jenkins.
    RUN_STANDALONE=true

    # log location. this may be a syslog facility.priority
    JENKINS_LOG=/var/log/$NAME/$NAME.log
    #JENKINS_LOG=daemon.info

    # Whether to enable web access logging or not.
    # Set to "yes" to enable logging to /var/log/$NAME/access_log
    JENKINS_ENABLE_ACCESS_LOG="no"

    # OS LIMITS SETUP
    # comment this out to observe /etc/security/limits.conf
    # this is on by default because http://github.com/jenkinsci/jenkins/commit/2fb288474e980d0e7ff9c4a3b768874835a3e92e
    # reported that Ubuntu's PAM configuration doesn't include pam_limits.so, and as a result the # of file
    wsds
        25
    wsds  
    OP
       2018-05-14 18:52:04 +08:00
    @zqcolor 公用环境,不能乱卸载组件啊
    wsds
        26
    wsds  
    OP
       2018-05-15 09:24:40 +08:00
    zqcolor
        27
    zqcolor  
       2018-05-15 10:31:51 +08:00
    网上查的,可以试试看

    https://stackoverflow.com/questions/49367311/start-jenkins-with-jdk-8-without-changing-system-java-home


    Set JENKINS_JAVA option in /etc/sysconfig/jenkins file.

    The variable name might be different depending on your operating system and package source but the /etc/sysconfig/jenkins file is usually the configuration file for your jenkins service.
    wsds
        28
    wsds  
    OP
       2018-05-28 12:43:22 +08:00
    还是不行啊
    RX03
        29
    RX03  
       2020-01-14 15:20:31 +08:00
    两年了。。。
    我自己这样暴力设置可以起来
    1. cd /etc/init.d 2. sudo vim jenkins 3. 注释掉 PATH 部分,因为之前编译多个版本的 AOSP,java 环境乱的压批,在 /etc/profile 里 export 了,在这里直接加上 source /etc/profile
    ubuntu@linux:/etc/init.d$ ./jenkins -> Correct java version found
    最后,docker 大法好
    TreePu
        30
    TreePu  
       2020-12-04 16:37:32 +08:00
    1,安装 jdk1.8
    TreePu
        31
    TreePu  
       2020-12-04 16:41:09 +08:00
    1,安装 JDK1.8:sudo apt-get install openjdk-8-jdk
    2,切换 JDK 版本:sudo update-alternatives --config java 输入数字,Enter
    3,修改 Jenkins 配置文件的 PATH 为 1.8 的路径
    sudo vi /etc/init.d/jenkins
    ## PATH=/bin:/usr/bin:/sbin:/usr/sbin 旧的
    PATH=/usr/lib/jvm/java-8-openjdk-amd64/bin/java 新的
    4,重启 Jenkins,成功

    今天遇到了,把解决过程分享一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2660 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:22 · PVG 18:22 · LAX 02:22 · JFK 05:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.