- 获取subversion
- 配置subversion
- 设置subversion为系统服务
花了不少时间从blastwave上down下二进制的subversion以及subversion的dependece二进制
subversion中的程序默认下载在/opt/csw/bin下面了
第二步配置subversion还是很简单的,从网络上能找到很多
第三步配置subversion成系统服务,以自动启动的方式运行。这里网络上很多都是用init.d/rc*.d这样的方法来弄,不过呢,这些已经是不建议的方式了。
solaris 10里面建议用SMF来完成管理,确实很方便。
具体的SMF就不讲了,Google下或者去sun的Bigadmin里面能看到很多。
(因为现在是根据回忆来写,有些路径或者文件名可能会打错。。。。)
我这里配置subversion是参考了/var/svc/manifest/network/utmp.xml这个文件,因为我的subversion也是一个network服务,类似utmp需要依靠多用户run-level
所以写了个subversion.xml如下
<?xml version='1.0'?>
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<service_bundle type='manifest' name='export'>
<service name='network/subversion' type='service' version='0'>
<create_default_instance enabled='true'/>
<single_instance/>
<dependent name='svnserve_multi-user' restart_on='none' grouping='optional_all'>
<service_fmri value='svc:/milestone/multi-user'/>
</dependent>
<!-- 以脚本启动-->
<exec_method name='start' type='method' exec='/lib/svc/method/svc-subversion' timeout_seconds='60'>
<method_context/>
</exec_method>
<!-- 以kill方式将服务进程干掉,这是有subversion的管理方式决定的,干掉svnserve进程-->
<exec_method name='stop' type='method' exec=':kill' timeout_seconds='60'>
<method_context/>
</exec_method>
<stability value='Unstable'/>
<template>
<common_name>
<loctext xml:lang='C'>Subversion monitoring</loctext>
</common_name>
</template>
</service>
</service_bundle>
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<service_bundle type='manifest' name='export'>
<service name='network/subversion' type='service' version='0'>
<create_default_instance enabled='true'/>
<single_instance/>
<dependent name='svnserve_multi-user' restart_on='none' grouping='optional_all'>
<service_fmri value='svc:/milestone/multi-user'/>
</dependent>
<!-- 以脚本启动-->
<exec_method name='start' type='method' exec='/lib/svc/method/svc-subversion' timeout_seconds='60'>
<method_context/>
</exec_method>
<!-- 以kill方式将服务进程干掉,这是有subversion的管理方式决定的,干掉svnserve进程-->
<exec_method name='stop' type='method' exec=':kill' timeout_seconds='60'>
<method_context/>
</exec_method>
<stability value='Unstable'/>
<template>
<common_name>
<loctext xml:lang='C'>Subversion monitoring</loctext>
</common_name>
</template>
</service>
</service_bundle>
然后写了个启动的shell脚本: subversion
#! /usr/bin/bash
# Start the subversion server
/opt/csw/bin/svnserve -d -r /export/home/svn/svn/repos/
用svccfg import subversion.xml导入到管理库里面,将subversion这个脚本添加执行权限,并拷贝成/lib/svc/method/svc-subversion
然后svcs |grep subversion看看运行状态,如果是online就OK了
可以通过 svcadm disable subversion
svcadmin enable subversion
svcadmin restart subversion
来管理这个服务
更多的看man svccfg 和 svcadm
通过 svcs -xv subversion可以诊断故障
有问题看看/var/svc/log/network-subversion的日志
没有评论:
发表评论