将我的macOS升级到Sierra后,当我使用launchctl加载启动Jenkins时,我无法连接到localhost:8080。如果我再次调用launchctl load,我会看到响应“服务已加载”。默认位置/ var / log / jenkins /(在jenkins-ci.plist中设置)没有日志文件。我还尝试在那里创建jenkins.log并向jenkins用户显示,但仍然没有打印出来。
如果我尝试使用java -jar jenkins.war启动Jenkins,我可以连接到localhost,但Jenkins作为新安装运行。
我安装了最新的JRE 1.8.0_102。
如何诊断问题?
答案 0 :(得分:48)
似乎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.启动詹金斯:
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
答案 1 :(得分:10)
当我升级到塞拉利昂时发生了这种情况,我设法用@ mac.slusarek的答案解决了这个问题。但它最近再次发生。这次我允许对操作系统进行微小的更新,我也一直在玩SDK Man来切换JDK&#39。不知道哪一个打破了我的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
问题解决了。我希望这有助于其他人。
答案 2 :(得分:9)
我有同样的问题,安装JDK并没有成功
但是,更改日志目录的权限(在我的情况下为/ var / log / jenkins)并重新启动Jenkins有效。
似乎搬到Sierra改变了这个文件夹的权利。
答案 3 :(得分:7)
我通过设置适当的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
和voilà!
答案 4 :(得分:5)
正如我在问题中所提到的,我安装了JRE。安装JDK后,Jenkins能够正常启动。
答案 5 :(得分:3)
我遇到了同样的问题。
我手动启用了对
的读写访问权限/Users/Shared/Jenkins
文件夹。
答案 6 :(得分:3)
当我从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
答案 7 :(得分:3)
我在MacOs(Mojave版本)上加载jenkins-cli.plist命令时遇到问题。
Mac版本:Mojave 10.14.6 Jenkins版本: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卸载/Library/LaunchDaemons/org.jenkins-ci.plist sudo launchctl加载/Library/LaunchDaemons/org.jenkins-ci.plist
第3步。尝试在浏览器http://localhost:7070中访问它。应该可以用!
答案 8 :(得分:2)
就我而言,在Catalina(OSX 10.15)上的安装甚至没有创建/var/log/jenkins
文件。我不得不
sudo mkdir /var/log/jenkins
然后获得所有权,然后詹金斯(Jenkins)正常开始。普通的OSX安装程序只是做过,所以不确定为什么安装损坏。