在 Windows 將 Subversion (svnserve) 註冊為系統服務實現開機自動啟動,需使用 sc create 建立服務,而非直接建立批次檔。本文記錄正確的服務建立、啟動、停止、刪除指令,並解決常見「服務名稱錯誤導致無法啟停」問題。
sc create svnserve binpath= "D:\Subversion\bin\svnserve.exe --service -r E:\wamp\www" depend= Tcpip start= auto
sc start svnserve
svnserve 為服務名稱 (非顯示名稱),後續啟停皆用此名稱。binpath= 後接完整執行檔路徑與參數,--service 表示以服務模式執行,-r 指定儲存庫根目錄。depend= Tcpip 設定相依 TCP/IP 協定。start= auto 設為自動啟動。net start svnserve :: 啟動服務
net stop svnserve :: 停止服務
sc delete svnserve :: 刪除服務
若使用 net start svnservice (錯誤服務名) 會失敗。正確服務名為 sc create 指定的 svnserve。可透過 sc query 或服務管理員 (services.msc) 確認實際服務名稱。
批次檔 setupservice.bat 內容應為:
sc create svnserve binpath= "D:\Subversion\bin\svnserve.exe --service -r E:\wamp\www" depend= Tcpip start= auto
sc start svnserve
pause
掌握 sc 與 net 指令,不僅能管理 SVN 服務,更能擴展至 MySQL、Apache 等各類 Windows 服務部署,理解服務生命週期管理核心概念。