繁体   English   中英

hg 作为 Windows 服务

[英]hg serve as Windows service

我想在 Windows 服务器上使用 mercurial。 由于我想通过 http 拉取和推送, hg serve似乎是最简单的解决方案。 它工作正常,但我每次重启后都重新启动它,所以我需要它作为 Windows 服务。 使用sc create ...手动安装它不起作用,它创建了一个服务,当我尝试启动它时会引发错误。 我发现了一些对这个问题的引用

但如果有的话,它们的记录很差。 (当然,我可以安装一个 web 服务器并使用 hgweb,但它似乎更复杂。)你有没有经验如何轻松设置hg serve ... <many args>作为 Windows 服务?

更新:感谢不同的方法。 我们留在hg serve ,我们公司的 windows-guy 设法将它安装为不太合适的服务。

或者你可以使用SCM-Manager

使用诸如 apache/lighttpd/iis 之类的 Web 服务器可以提供许多功能,例如身份验证或 HTTPS 支持。 但是“hg serve”是一个简单而快速的解决方案。 此外,'hg serve' 可以为多个存储库提供服务。 但是 hg serve 本身不能作为 Windows 服务运行,因为它无法响应 Windows 控制命令。 因此,使用HgService是使“hg serve”成为真正的 Windows 服务的好方法。

这是我的配置示例。 我遵循以下步骤:

  • 安装 TortoiseHG
  • 安装 HgService
  • 创建“C:\\Repositories”文件夹并将所需的存储库放入其中。
  • 使用以下内容创建“C:\\Repositories\\hgweb.config”:
[paths]
/ = C:\Repositories\*

[web]
style = monoblue
  • 修改 C:\\Program Files\\Mercurial\\HgService 中的 HgService.exe.config
<add key="CommandLine" value="hg.exe"/>
<add key="CommandLineArguments" value="serve --prefix=/hg --address 0.0.0.0 --port 80 --web-conf c:\Repositories\hgweb.config -A access.log -E error.log" />
  • 启动服务

希望这一系列的动作也能对你有所帮助。

您应该查看Jerremy Skinner关于此主题的博文 他解释了如何在 IIS7 上托管 Mercurial 存储库并使用一些不错的 url 路由。 我在我的机器上做了它,它就像一个魅力。 它需要一些配置,但这是值得的。

我注意到他的帖子中有一个错误是他正在写一个hgwebdir.cgi ,但我找不到那个。 我确实找到了一个hgweb.cgi ,复制粘贴这个文件也是如此。

hg serve 与NSSM一起工作正常!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM