我想运行化石供应链管理作为在 Mac Mini Server 上需要时调用的服务。我应该如何配置它?
答案1
在 Mac OS X 上将 Fossil SCM 设置为服务器。
这在 10.7 上有效,但据我所知应该可以追溯到 10.4。
先决条件:
- 系统上的某个位置的 Fossil 二进制文件(我使用了 ~/bin/fossil )
- 文件夹中的一个或多个 Fossil 存储库(我使用了 ~/fossil-repository )
步骤:
- 将 org.fossil-scm.service.plist 文件(如下)放在 /Library/LaunchDaemons 中
- 将对 '/Users/spdegabrielle/'( ~/ ) 的引用更改为您自己的路径
打开终端并输入以下内容:
sudo launchctl 卸载 /Library/LaunchDaemons/org.fossil-scm.service.plist
打开浏览器http://localhost:8081/reponame(我使用主存储库的名称“projects”作为默认存储库)
欲了解更多信息,请查看创建启动守护进程和代理。
对于正在发生的事情的一些解释:
/Library/LaunchDaemons/ 是保存定义在系统启动时启动的“用户守护程序”的 .plist 文件的位置。其他一些有用的位置:每个用户的 ~/Library/LaunchAgents,以及所有用户的 /Library/LaunchAgents。
KeepAlive 不重新启动服务;这种使用 Fossil 的方式是通过响应端口 8081 上的请求来启动它。
标签 org.fossil-scm.service 为服务命名,因此可以使用 sudo launchctl load 启动它,也可以使用 sudo launchctl load 停止它
ProgramArguments /Users/spdegabrielle/bin/fossil http --localauth --notfound projects /Users/spdegabrielle/fossil-repository 是 launchd 的说法,即fossil http --localauth --notfound projects /Users/spdegabrielle/fossil-repository
各参数含义如下:
Fossil http 动作来自端口 8081(在本例中)的请求,提供响应并退出。(参见 Fossil http 帮助)
--localauth 自动登录如果你直接从你的服务器访问fossilhttp://127.0.0.1:8081/或者http://本地主机:8081/(参见化石帮助 http)
--notfound 项目在将存储库位置指定为文件夹(下一步)而不是特定存储库时设置默认存储库
/Users/spdegabrielle/fossil-repository 是存储库位置(--notfound 项目设置默认值)
RunAtLoad-不要在加载时运行它-它将根据需要运行
inetdCompatibility 导致 launchd 将像 inetd 一样启动程序