首页 > 代码库 > 让svn服务随WINDOWS自动启动

让svn服务随WINDOWS自动启动



以前的svnserve要想成为windows服务,必须依赖于svnservice或其他工具。从Subversion1.4开始,Subversion本身就集成了Windows服务的工具。
将svn设置成为系统服务自动运行的方法:
在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server,Windows7)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。
例如我的Subversion安装在"C:\subversion",版本库在"D:\svn_repository",而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:
sc create svnservice binpath= "C:\subversion\bin\svnserve.exe --service -r D:\svn_repository" displayname= "SVNService" depend= Tcpipstart= auto

上面的命令中,如果缺少“start= auto”则安装的服务不会随Windows的启动而启动。如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice","svnservice"就是我们创建服务时使用的名字。
请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该写在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。(注意:cmd命令运行时要“run as administrator”)

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

另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中如果svnserve.exe在“C:\Program Files\subversion\”中,则整个命令如下:
sc create svnservice binpath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service -r D:\svn_repository" displayname= "SVNService" depend= Tcpip start= auto
其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。
以前的svnserve要想成为windows服务,必须依赖于svnservice或其他工具。从Subversion1.4开始,Subversion本身就集成了Windows服务的工具。
将svn设置成为系统服务自动运行的方法:
在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server,Windows7)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。
例如我的Subversion安装在"C:\subversion",版本库在"D:\svn_repository",而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:
sc create svnservice binpath= "C:\subversion\bin\svnserve.exe --service -r D:\svn_repository" displayname= "SVNService" depend= Tcpipstart= auto

上面的命令中,如果缺少“start= auto”则安装的服务不会随Windows的启动而启动。如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice","svnservice"就是我们创建服务时使用的名字。
请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该写在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。(注意:cmd命令运行时要“run as administrator”)

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

另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中如果svnserve.exe在“C:\Program Files\subversion\”中,则整个命令如下:
sc create svnservice binpath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service -r D:\svn_repository" displayname= "SVNService" depend= Tcpip start= auto
其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。

让svn服务随WINDOWS自动启动