推荐给好友 上一篇 | 下一篇

Subversion安装成Windows服务

作者:Rock Sun, Subversion中文站。
如有转发请注明出处

以前的svnserve要想成为windows服务,必须依赖于svnservice或其他工具。从Subversion1.4开始,Subversion本身就集成Windows服务的工具。

1,安装svnservice

在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。

例如我的Subversion安装在"D:\Subversion",版本库在"D:\svnroot",而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:

      sc create svnservice
      binpath= "D:\Subversion\bin\svnserve.exe --service -r D:\svnroot"
      displayname= "SVNService"
      depend= Tcpip
     
请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。

在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务,然后使用"net stop svnservice"停止服务。

另 外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中如果svnserve.exe在“c:\ program files\subversion\”中,则命令应该写为“binpath= "\"c:\program files\subversion\bin\svnserve.exe\"”(“”中的内容),整个命令如下,红色部分是改变部分:

      sc create svnservice
      binpath= "\"D:\program files\Subversion\bin\svnserve.exe\" --service -r D:\svnroot"
      displayname= "SVNService"
      depend= Tcpip
     
其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。


2,删除服务

如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice","svnservice"就是我们创建服务时使用的名字。


3,配置服务是自动启动

默认情况下安装的服务不会随Windows的启动而启动,为了使svn服务能够随Windows启动而启动,需要修改一下"sc create"命令(首先要删除),增加"start= auto"选项:

      sc create svnservice
      binpath= "D:\Subversion\bin\svnserve.exe --service -r D:\svnroot"
      displayname= "SVNService"
      depend= Tcpip
      start= auto
     
当然你也可以使用图形化的工具修改服务的属性,你可以在“开始->运行...”中执行"services.msc",然后在界面中修改。


链接:

关于sc安装svn服务的详细信息,可以看看这篇文章:
http://svn.collab.net/repos/svn/tags/1.4.0/notes/windows-service.txt



TAG: Subversion subversion Windows 服务 sc
查看全部3条评论

最新评论

  • 删除 引用 dongruiru (2009-2-12 16:47:14, 评分: 0 )

    對初學者很實用!
  • 删除 引用 rocksun (2008-6-14 00:58:10, 评分: 0 )

    确实是世界上最搞怪的语法
  • 删除 引用 nigulavy (2008-6-03 21:16:40, 评分: 0 )

    注意这个搞怪的东西,sc 真是个糟糕的软件。
    Note that the command-line syntax for SC is rather odd.  Key/value
    pairs are specified as "key= value" (without the double-quotes).  The
    "key=" part must not have any spaces, and the "value" part MUST be
    separated from the "key=" by a space
 

评分:0

我来说两句