11

运行hudson很容易,但目前文档缺少在 OS X 上将运行中的 hudson 作为守护程序/服务安装的教程。

当您切换到生产环境时,您需要确保它已正确配置和保护。

要求:

  • 能够在端口 80 上运行它
  • 不以 root 身份运行(或至少不以 root 身份运行作业)
  • 确保它在系统重新启动时正确启动/停止
  • 启用自动升级,直接从 Web 界面工作。

最好的办法是有一个安装脚本来下载最新的 hudson 并安装它。

我们将把最好的答案整合到 Hudson wiki。

资源:

4

3 回答 3

12

如果您希望每次登录时都能在 Mac 上运行本地 Hudson,请尝试此操作。

您需要为其设置一个launchctl plist;应该是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>UserName</key>
 <string>yourid</string>
 <key>Label</key>
 <string>Hudson</string>
 <key>EnvironmentVariables</key>
   <dict>
     <key>HUDSON_HOME</key>
     <string>/Users/yourid/.hudson</string>
   </dict>
 <key>ProgramArguments</key>
 <array>
 <string>/usr/bin/java</string>
 <string>-jar</string>
 <string>/Users/yourid/Hudson/hudson.war</string>
 </array>
 <key>RunAtLoad</key>
 <true/>
</dict>
</plist>

这假设您已经下载hudson.war到您的主目录下~/Hudson,并且您想以自己的身份运行它(可能是最好的决定。)请确保您定义了<UserName>密钥,否则它将以 root 身份运行!

从登录开始

  1. 将以上内容另存为/Library/LaunchAgents/hudson.plist
  2. 第一次启动它

    sudo launchctl load -w /Library/LaunchAgents/hudson.plist

或注销并重新登录,这将自动执行相同的操作。

重新启动时开始

  1. 将以上内容另存为/Library/LaunchDaemons/hudson.plist
  2. 第一次启动它

    sudo launchctl load -w /Library/LaunchDaemons/hudson.plist

或重新启动您的机器,它会自动执行相同的操作。

重新启动哈德森

Hudson 在 OS X 下无法自动重启,所以如果需要停止它,发出重启命令

launchctl unload -w path_to_plist

我发现有时它不会在第一次执行时停止launchctl unload;在这些情况下,只需再次发出命令。

这将在端口 8080 下运行,就像您使用文件中内置的 Winstone 服务器自己从命令行运行命令一样.war

我意识到这并没有专门回答“在端口 80 上运行”的问题,但对于在您自己的笔记本电脑上进行开发,我建议这是一个更好的选择。

于 2010-09-22T02:25:13.407 回答
2

正确的解决办法是在tomcat里面安装hudson,让tomcat作为守护进程运行

这也将满足安全要求,让您轻松升级 hudson。

这是 OS X 10.6 的完整指南: https ://serverfault.com/questions/183496/full-guide-for-installing-tomcat-on-os-x/183527#183527

于 2010-09-23T14:16:19.047 回答
2

我有的小解决方案(也从登录开始)是这样的:首先手动运行一次 hudson(所以它构建它的 .hudson 目录)。在 OSX 的机器上某处创建一个hudson.command文件,内容如下:

nohup java -jar .hudson/hudson.war --httpPort=8080 &

然后,打开系统首选项,选择您的用户,然后选择登录项。单击“+”按钮,您将能够使用 finder 选择命令。

下次登录时,hudson 将启动。

缺点:

  • Hudson 没有特定的用户——只有你
  • 哈德逊在 8080 端口
  • Hudson 重新启动意味着找到该进程,将其杀死并再次启动 hudson.command 文件。
  • Hudson 仅在用户登录后才会启动。
于 2010-12-18T14:45:51.687 回答