Jenkins 无法在 macOS 10.12 (Sierra) 上启动
Posted
技术标签:
【中文标题】Jenkins 无法在 macOS 10.12 (Sierra) 上启动【英文标题】:Jenkins does not start on macOS 10.12 (Sierra) 【发布时间】:2016-09-30 15:15:16 【问题描述】:将我的 macOS 升级到 Sierra 后,当我使用 launchctl load 启动 Jenkins 时,我无法连接到 localhost:8080。如果我再次调用 launchctl load,我会看到响应“服务已加载”。默认位置 /var/log/jenkins/ 没有日志文件(在 jenkins-ci.plist 中设置)。我还尝试在那里创建 jenkins.log 并 chown 给 jenkins 用户,但那里仍然没有打印任何内容。
如果我尝试使用 java -jar jenkins.war 启动 Jenkins,我可以连接到 localhost,但 Jenkins 作为新安装运行。
我安装了最新的 JRE 1.8.0_102。
如何诊断问题?
【问题讨论】:
【参考方案1】:似乎 Sierra 更改了 Jenkis 文件夹的权限。所以最好的解决办法是:
1.添加org.jenkins-ci.plist的执行权限:sudo chmod +x /Library/LaunchDaemons/org.jenkins-ci.plist
2.设置jenkins为/var/log/jenkins的所有者:sudo chown jenkins /var/log/jenkins
3. 启动 Jenkins:sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
【讨论】:
不错的一个。谢谢。一件小事是你不需要允许对每个人执行。允许它为所有者就足够了。所以 chmod u+x 就可以了。 很好,这很有帮助。唯一一件小事是詹金斯显然处于某种“部分运行”状态,所以我首先需要用“卸载”停止詹金斯(与步骤 3 相同,但用“卸载”而不是“加载”),然后按照所述执行第 3 步。 Jenkins 不拥有日志目录已修复它。 在将我的 MacBook 升级到 OSX Mojave 后,这也对我有用! @RickSlinkman,仍然无法打开 localhost:8080 OSX Mojave。【参考方案2】:当我升级到 Sierra 时,这发生在我身上,我设法通过 @mac.slusarek 的回答解决了这个问题。但最近又发生了。这次我允许对操作系统进行小幅更新,并且我也一直在使用SDK Man 来切换 JDK。不确定是哪一个破坏了我的 Jenkins,但这次不是权限问题。
我从日志中注意到 Jenkins 试图在 Java 9-ea, which is apparently not supported yet 上运行。我已经使用Jenkins installer for Mac 安装了 Jenkins,所以尝试卸载:
/Library/Application\ Support/Jenkins/Uninstall.command
并再次安装,但问题并没有消失。
然后我发现this article 建议改为使用Homebrew 安装它。就像跑步一样简单:
$brew install jenkins
由于我只在本地运行它进行开发,我不需要将它作为守护进程启动,所以现在我只需键入即可运行它
$jenkins
问题解决了。我希望这对其他人有所帮助。
【讨论】:
你是一个救生员。简单而有效的答案!谢谢。【参考方案3】:我通过设置适当的JAVA_HOME
变量来修复它。我诊断它的方法是查看 Jenkins 尝试运行时引发的错误:
tail -f /var/log/jenkins/jenkins.log
然后我尝试运行它:
sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist
如果说已经加载,先卸载:
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
然后运行它:
sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist
我看到的错误是 Jenkins 需要 Java 8,而不是 Java 10。所以我卸载了:
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
然后安装 Java 8。然后我编辑了plist
文件:
sudo nano /Library/LaunchDaemons/org.jenkins-ci.plist
并添加了适当的JAVA_HOME
环境变量:
<dict>
<key>JENKINS_HOME</key>
<string>/Users/Shared/Jenkins/Home</string>
<key>JAVA_HOME</key>
<string>/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home</string>
</dict>
最后,我再次尝试了launchctl
命令:
sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist
瞧!
【讨论】:
是的,这对我有用。我在日志中有一个“使用 JDK 10 而不是 8”错误。【参考方案4】:我有同样的问题,安装 JDK 没有成功
但是更改日志目录的权限(在我的例子中是 /var/log/jenkins)并重新启动 Jenkins 是有效的。
似乎迁移到 Sierra 更改了此文件夹的权限。
【讨论】:
我遇到了同样的问题,@Werdeil 是正确的。 Sierra 更改了 Jenkins 日志目录 (/var/log/jenkins) 的权限,并阻止了 Jenkins 重新启动守护程序。所以,我将/var/log/jenkins的权限修改为组可写和组可执行,然后重新启动Jenkins。它现在正在工作。感谢您的回答-它对我帮助很大。很高兴我们都在互相照顾。干杯。【参考方案5】:就我而言,Catalina (OSX 10.15) 上的安装不知何故甚至没有创建 /var/log/jenkins
文件。我不得不
sudo mkdir /var/log/jenkins
然后取得所有权,然后 Jenkins 正常启动。刚刚做了正常的 OSX 安装程序,所以不确定安装损坏的原因。
【讨论】:
这发生在我最初的安装以及刚刚更新到 Catalina OSX 10.15 Beta 9 的时候。更新过程中的某些东西似乎正在杀死或重置 /var/log 中的所有内容。将向 Apple 报告。 将此文件夹的所有权更改为chown jenkins /var/log/jenkins
【参考方案6】:
正如我在问题中提到的,我安装了 JRE。安装JDK后,Jenkins就可以正常启动了。
【讨论】:
【参考方案7】:当我从 Sierra 升级到 High Sierra 时,同样的事情也发生在我身上。我按照上面 mac.slusarek 的说明进行操作,但是 jenkins ID 不再存在于我的计算机上。我作为标准用户创建了 jenkins id。 此外,/Users/Shared/Jenkins 下的文件不再归 jenkins 所有。在我用命令找出错误日志后:
sudo cat /var/log/jenkins/jenkins.log
看到错误后:
Exception in thread "main" java.io.IOException: Jenkins has failed to create a
temporary file in /Users/Shared/Jenkins/tmp
at Main.extractFromJar(Main.java:368)
at Main._main(Main.java:210)
at Main.main(Main.java:112)
Caused by: java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(File.java:2024)
at Main.extractFromJar(Main.java:365)
... 2 more
我用命令修复了所有权:
sudo chown -R jenkins /Users/Shared/Jenkins
【讨论】:
当我升级到 High Sierra 时,我也失去了我的 jenkins 用户。我问了关于这个问题的另一个问题:***.com/questions/47079065/…【参考方案8】:我遇到了同样的问题。
我手动启用了对
/Users/Shared/Jenkins
文件夹。
【讨论】:
【参考方案9】:我在我的 MacOs(Mojave 版本)上加载 jenkins-cli.plist 命令时遇到问题。
Mac 版本:Mojave 10.14.6 詹金斯版本:2.190.1
我使用 .pkg 文件安装了 jenkins。
参考链接:https://java2blog.com/install-jenkins-mac-os-x/
执行以下命令时,
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
我遇到了“已经加载”的错误。
解决方案:
第 1 步。检查 jenkins 日志中的确切错误。
tail -f /var/log/jenkins/jenkins.log
(在我的情况下,这是端口绑定问题,端口 8080 已被其他应用程序使用)
第 2 步。所以我决定在其他端口(比如 7070)上启动 jenkins。您可以使用以下命令来执行此操作。
sudo 默认写入 /Library/Preferences/org.jenkins-ci.plist httpPort 7070
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
第 3 步。尝试在浏览器中访问它,http://localhost:7070。它应该工作!
【讨论】:
以上是关于Jenkins 无法在 macOS 10.12 (Sierra) 上启动的主要内容,如果未能解决你的问题,请参考以下文章
如何在 macOS 10.12+ 上自定义 NSTableView 标头?
xxx.app已损坏,打不开.你应该将它移到废纸篓 macOS 10.12 Sierra