Launchd没有在OS X Yosemite上启动Jenkins服务器

时间:2014-10-21 09:17:26

标签: jenkins osx-yosemite

在OS X 10.9下,Jenkins CI由launchd自动启动。更新到10.10后,它不再启动。

Jenkins是使用jenkins-ci.org的OS X安装程序安装的。我正在运行v1.584。在这个问题浮出水面后,我重新安装使用v1.585无济于事。

org.jenkins-ci.plist中指定的日志文件中没有输出。 Syslog有几条消息表明org.jenkins-ci服务"无法初始化:14A389:xpcproxy + 14045 [1344] [1016C726-9ACF-3A24-9C51-A279F5C6B167]:0xd"。

在优胜美地发生了什么变化打破了詹金斯?

" 0xd"在日志消息的末尾有一个错误代码?

我尝试通过launchctl手动加载和启动。没有错误输出到控制台,但jenkins仍未运行。

问题不是詹金斯独有的。我有另一个启动项目,自更新到10.10以来也失败了:TrendMicro反病毒。

4 个答案:

答案 0 :(得分:49)

这是最终答案。

  1. 确保已安装Java。至少在我的情况下,10.10安装程序删除了Apple的Java 6.安装的java必须满足/usr/bin/java*链接。这些指向/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands。安装Oracle Java时,您需要JDK而不是JRE才能满足此要求。

  2. chown jenkins /var/log/jenkins/jenkins.log

  3. 确保/var/log/jenkins归jenkins所有,并且可供任何人搜索(模式755)。它可能已经处于这种状态。

  4. 编辑文件/etc/newsyslog.d/jenkins.conf,更改

    /var/log/jenkins/jenkins.log 644 3 * $D0 J

    /var/log/jenkins/jenkins.log jenkins:jenkins 644 3 * $D0 J

    这可确保在夜间日志轮换期间创建的新日志文件归jenkins所有。如果您不这样做,则需要每天重复步骤2.

  5. @kjones答案的第4步可能是不必要的,因为launchd试图每10秒启动一次jenkins。

    ' 0xd'在我发布的日志消息的末尾确实是错误代码:Permission Denied。

    launchd中有哪些变化? /var/log/jenkins/jenkins.log被指定为Standard{Error,Out}Path中的org.jenkins-ci.plist。我的理论是,在Yosemite发布之前打开文件并设置STDOUT&在将流程所有者更改为" jenkins"之前STDERR并运行jenkins-runner.sh。在Yosemite中,似乎launchd不会打开文件,直到它改变了进程所有权,因此"权限被拒绝"当文件归root所有时。

答案 1 :(得分:17)

以下是我必须采取的步骤:

  1. Install Apple's OS X Java

  2. 向org.jenkins-ci.plist添加执行权限

    sudo chmod + x /Library/LaunchDaemons/org.jenkins-ci.plist

  3. 将jenkins设置为/ var / log / jenkins

    的所有者

    sudo chown jenkins / var / log / jenkins

  4. 启动Jenkins

    launchctl start /Library/LaunchDaemons/org.jenkins-ci.plist

答案 2 :(得分:2)

这解决了我的问题:

1)从https://www.java.com/en/download/help/mac_10_10.xml

获取java 8的最新java更新

2)sudo chown jenkins /var/log/jenkins/jenkins.log

3)sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

答案 3 :(得分:-1)

可能不再需要了。我从http://jenkins-ci.org下载了jenkins-1.588,选择了Mac OS X本机包,运行安装程序,在Applications / Jenkins中查看,然后运行。我正在跑10.10(14A389)。