Solaris 10应用最新的SMF进行系统启动服务和网络服务管理

Solaris10采用一种新的机制SMF对系统启动服务/网络服务进行管理 。SMF提供了一种能够替代传统Unix使用启动脚本(RC)和initlevel的方式 。SMF能够提供以下功能:
1.按照依赖关系 , 自动启动失败的服务 。
2.通过使用svcs命令可以使服务对象可见 , 使用svCADm/svccfg使服务对象可管理 。
3.通过对服务配置自动进行快照 , 可以方便地备份/恢复服务配置 。
4.通过使用svcs-x可以方便地调试服务 , 查找错误原因 。
5.通过svcadm可以方便地启用或禁止服务 。
6.通过并行启动服务 , SMF使大型系统的启动过程更加快速 。
以下是Solaris10中与SMF相关的文件和目录:
?/etc/svc/repository.db:全局配置数据库
?/lib/svc/method/*:服务启动/停止脚本
?/var/svc/log/*:服务实例日志
?/var/svc/manifest/*:定义服务的mainifest文件 , 格式为xml
?/etc/svc/volatile:包含临时数据的文件系统 , 如锁文件 , 初始化状态等等 。
在Solaris10之前的版本 , 如Solaris7,8,9 , 如果用户想在系统启动时启动相应的应用服务 , 一般只需要在rc2.d或rc3.d中增加相应应用的启动/停止脚本 , 而在Solaris10中 , 为保持和以前操作系统的版本兼容性 , 我们仍然支持rc脚本方式启动应用服务 , 但是建议使用SMF方式增加系统得启动服务 , 以下为增加系统启动服务的步骤:
1.编写应用启动脚本及停止脚本 , 假定应用名称为app1 , 启/停脚本为:
/opt/SUNWapp1/bin/start
/opt/SUNWapp1/bin/stop
【Solaris 10应用最新的SMF进行系统启动服务和网络服务管理】2.为应用服务创建服务定义文件app1.xml , 内容如下:
name='application/app1'
type='service'
version='1'>
type='method'
name='start'
exec='/opt/SUNWapp1/bin/start'
timeout_seconds='60'/>
type='method'
name='stop'
exec='/opt/SUNWapp1/bin/stop'
timeout_seconds='60'/>
app1monitoring
3.装载服务定义
#svccfgimport/var/svc/manifest/application/app1.xml
4.检查服务是否注册
Svcs–a|grepapp1
5.启动服务
Svcadmenablesvc:/application/app1
Svcsapplication/app1

    推荐阅读