將svnserve部署為后台服務


由於svnserve運行模式沒有部署為后台服務,很容易被人誤關掉。於是在網上查了一下,發現也已經有人總結了。Copy過來,以作備忘。

以前的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/s/1.4.0/notes/windows-service.txt

出處:http://www.360doc.com/content/11/1110/14/5851320_163317239.shtml


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM