为什么需要检查SVN服务状态?
SVN(Subversion)是常用的版本控制系统,其服务端需持续运行才能支持团队协作,若服务未启动,用户将无法访问仓库(如报错 Unable to connect to a repository
),通过命令行检查可快速定位问题,确保服务正常运行。
检查步骤(分操作系统)
Windows 系统
-
检查SVN服务进程
打开命令提示符(CMD)或 PowerShell,执行:sc query svnserve
- 若显示 RUNNING,表示服务已启动。
- 若显示 STOPPED,则需手动启动:
net start svnserve
-
检查端口占用(默认3690)
netstat -ano | findstr :3690
- 若返回
LISTENING
及进程ID(PID),说明服务运行中。
- 若返回
-
验证Apache SVN服务(如使用HTTP/HTTPS协议)
sc query Apache2.4 # 根据实际Apache服务名调整
Linux 系统
-
检查svnserve服务状态
systemctl status svnserve # Systemd系统(如Ubuntu 16.04+、CentOS 7+)
或
service svnserve status # SysVinit系统(如旧版CentOS 6)
- 状态显示 active (running) 即表示已启动。
-
查看进程是否存在
ps -ef | grep svnserve
- 若存在
/usr/bin/svnserve
进程,则服务运行中。
- 若存在
-
检测端口监听(默认3690)
ss -tuln | grep 3690 # 推荐使用ss命令 # 或 netstat -tuln | grep 3690
- 输出
LISTEN
表示端口已被SVN占用。
- 输出
-
检查Apache SVN模块(如使用WebDAV)
systemctl status apache2 # Ubuntu/Debian systemctl status httpd # CentOS/RHEL
常见问题排查
-
服务未启动怎么办?
- Windows:运行
net start svnserve
- Linux:执行
sudo systemctl start svnserve
- 确保安装时已配置为系统服务(Linux可通过
svnserve -d -r /svn/repos
临时启动)。
- Windows:运行
-
端口被占用?
检查是否有其他程序占用3690端口:lsof -i :3690 # Linux netstat -ano | findstr :3690 # Windows
若冲突,修改SVN配置文件的端口或终止冲突进程。
-
防火墙拦截?
确保防火墙开放SVN端口(默认3690或HTTP的80/443):sudo ufw allow 3690/tcp # Ubuntu firewall-cmd --add-port=3690/tcp --permanent # CentOS
通过命令行检查SVN服务状态是运维的基础操作:
- Windows:用
sc query
查服务状态 +netstat
验端口。 - Linux:用
systemctl/ss/ps
组合验证进程与端口。 - 通用:始终检查防火墙和端口冲突。
定期监控服务状态可避免协作中断,建议将SVN设为开机自启(Linux:sudo systemctl enable svnserve
)。
引用说明:本文方法基于Subversion官方文档的服务管理指南及Linux/Windows系统命令手册,确保操作可靠性,具体服务名/端口请根据实际安装调整。
参考来源:
- SVN 官方服务配置文档
- Linux Systemd 手册
- Microsoft Windows SC 命令文档
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5693.html