方式一:centos 7 设置svn开机自启动 使用新的systemctl 服务命令 (笔者成功验证过,该方式可行)
安装好 svn 服务后,默认是没有随系统启动自动启动的, CentOS 7 的 /etc/rc.d/rc.local 是没有执行权限的, 系统建议创建 systemd service 启动服务
于是查看 systemd 里 svn 的配置文件 /lib/systemd/system/svnserve.service
1. [Unit]
2. Description=Subversion protocol daemon
3. After=syslog.target network.target
4.
5. [Service]
6. Type=forking
7. EnvironmentFile=/etc/sysconfig/svnserve
8. ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS
9.
10. [Install]
11. WantedBy=multi-user.target
找到 svn 的 service 配置文件 /etc/sysconfig/svnserve 编辑配置文件
vi /etc/sysconfig/svnserve
将 OPTIONS="-r /var/svn" 改为 svn 版本库存放的目录,如:我的是/opt/svn,修改之后的OPTIONS="-r /opt/svn"
命令模式下输入 :wq 保存退出
在提示符下输入
systemctl enable svnserve.service
出现:Created symlink from /etc/systemd/system/multi-user.target.wants/svnserve.service to /usr/lib/systemd/system/svnserve.service.
systemctl start svnserve.service
重启服务器,输入
ps -aux | grep 'svn' 或者 ps -ef|grep svnserve
出现如下信息,标识svn服务起动成功。
方式二:传统的方式设置svn开机启动 (笔者在centos7 设置不成功) 1.安装好的svn服务端,默认是不会开机自启动的,每次开机自己启动会很麻烦,我们可以把它设成开机启动 首先:编写一个启动脚本svn_startup.sh,我放在/root/svn_startup.sh
#!/bin/bash /usr/bin/svnserve -d -r /home/svnrepos/
这里的svnserve路径保险起见,最好写绝对路径,因为启动的时候,环境变量也许没加载。
绝对路径怎么查?
which svnserve
这里还有可能碰到一个问题,如果你在windows下建立和编写的脚步,拿到linux下,用vi或者vim修改后可能会无法执行,这是文件格式的问题
vi svn_startup.sh 输入:set ff 回车 如果显示的结果不是fileformat=unix 再次输入 set ff=unix 就OK了
然后修改该脚本的执行权限
chmod a+x svn_startup.sh 或者
chmod ug+x svn_startup.sh 或者万能的 chmod 777 svn_startup.sh
最后:加入自动运行
vi /etc/rc.d/rc.local 在末尾添加脚本的路径,如: /root/svn_startup.sh
现在,你可以重启一下试试了。 不懂得怎么确认成功?败给你了
ps -ef|grep svnserve
如果有什么问题,欢迎大家一起探讨,代码如有问题,欢迎各位大神指正!