运行 哈德森 它很简单,但目前文档中缺少在OS X上安装正在运行的hudson作为守护程序/服务的教程。
切换到生产时,您需要确保正确配置和保护。
要求:
- 能够在端口80上运行它
- 不以root身份运行(或者至少不以root身份运行作业)
- 确保它在系统重启时正确启动/停止
- 启用自动升级,直接从Web界面运行。
最好的,是有一个安装脚本,下载最新的哈德森并安装它。
我们将整合Hudson wiki的最佳答案。
资源:
如果您希望在登录时在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身份运行!
从登录开始
- 将上面保存为
/Library/LaunchAgents/hudson.plist
第一次启动它
sudo launchctl load -w /Library/LaunchAgents/hudson.plist
或者退出并重新登录,这将自动执行相同的操作。
从重启开始
- 将上面保存为
/Library/LaunchDaemons/hudson.plist
第一次启动它
sudo launchctl load -w /Library/LaunchDaemons/hudson.plist
或重新启动您的机器,这将自动执行相同的操作。
重启哈德森
Hudson无法在OS X下自动重启,因此如果需要停止它,请发出restart命令
launchctl unload -w path_to_plist
我发现有时它不会在第一次执行时停止 launchctl unload
;在这些情况下,只需再次发出命令。
这将在端口8080下运行,就像您自己使用内置的Winstone服务器从命令行运行命令一样 .war
文件。
我意识到这并没有具体回答“在端口80上运行它”的问题,但是对于你自己的笔记本电脑上的开发,我建议这是一个更好的选择。
我有一个小小的解决方案(也是在登录时开始)是这样的:
首先手动运行一次hudson(所以它构建它的.hudson目录)。
创建一个 hudson.command 在OSX中的某台机器上安装文件,内容有点像这样:
nohup java -jar .hudson/hudson.war --httpPort=8080 &
然后,打开系统首选项,选择您的用户,然后选择登录项。单击“+”按钮,您将能够使用finder选择命令。
下次登录时,hudson将启动。
缺点:
- Hudson没有特定的用户 - 只有你
- 哈德森在8080港口
- Hudson重启意味着找到进程,杀死它并再次启动hudson.command文件。
- 只有用户登录后,Hudson才会启动。