在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反病毒。
答案 0 :(得分:49)
这是最终答案。
确保已安装Java。至少在我的情况下,10.10安装程序删除了Apple的Java 6.安装的java必须满足/usr/bin/java*
链接。这些指向/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands
。安装Oracle Java时,您需要JDK而不是JRE才能满足此要求。
chown jenkins /var/log/jenkins/jenkins.log
确保/var/log/jenkins
归jenkins所有,并且可供任何人搜索(模式755)。它可能已经处于这种状态。
编辑文件/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.
@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)
以下是我必须采取的步骤:
向org.jenkins-ci.plist添加执行权限
sudo chmod + x /Library/LaunchDaemons/org.jenkins-ci.plist
将jenkins设置为/ var / log / jenkins
的所有者sudo chown jenkins / var / log / jenkins
启动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)。