用Solaris 10的SMF配置Tomcat为自动启动

一、Solaris10中的SMF简介
SMF是Service Management Facility 的缩写 , 是Sun公司在其Solaris产品中提供的一种管理服务的新特性 。3M(Manifest,Method , Milestone)是SMF中的3个主要组成部分 。其中Manifest是一个xml文件 , 用于定义服务的配置清单 , 主要包括服务的标识信息 , 服务的启动、停止方法 , 服务启动和停止对其它服务或者系统资源的依赖关系等 。Method是一个脚本程序用来负责服务的启动、停止、刷新等工作 。Milestone事实上与运行级别(run-level)相似 。除此之外服务配置仓库(service configuration repository) , profile , 快照(Snapshots)也是其很重要的组成部分 。那么SMF与传统的Unix后台服务管理机制相比较有什么突出的特点呢?
1、可以恢复由软件故障、硬件故障、管理错误终止的服务
2、服务之间可以定义相互间的依赖关系
3、 它提供了比较全面的基于命令行的管理工具(svcs , svCADm , svccfg...)
4、根据依赖关系可以并发启动服务 , 加快系统启动的速度
5、引入服务配置库 , 提供服务配置库快照、备份、恢复功能
这些功能方便了服务的管理 , 服务的可用性 , 可维护性 。SMF提供了一定程度的服务自愈性 , 它也是Solaris 10系统可预测自愈功能(Predictive Self-Healing)的一部分 。更多有关SMF 的信息请访问http://docs.sun.com/app/docs/doc/817-1985/6mhm8o5rh?a=vIEw 。
正是因为SOLARIS10采用了现在SMF方式的后台服务管理机制 , 使得很多熟悉UNIX的用Run Control (即配置/etc/rcn.xx)脚本方式来进行服务管理的工程师不了解如何在SOLARIS10 中来完成相同的工作 。下面将给出一个简单的例子来说明如何使用SMF来将tomcat作为一个自动启动的后台服务 。
二、将tomcat设置的系统服务
说明:本例中tomcat的安装目录是/export/mysoft/tomcat551/ , 实践中需要根据实际安装目录替换
A.在SMF的manifast下面创建一个用于存放SMF配置文件的目录 。
#mkdir -p /var/svc/manifest/application/server/tomcat
B.Tomcat作为系统服务的配置文件 , 在A中创建的目录下面新建一个tomcat.xml文件,
此文件内容应该包含如下内如:



name='filesystem'
grouping='require_all'
restart_on='none'
type='service'>

type='method'
name='start'
exec='/export/mysoft/tomcat551/bin/startup.sh'
timeout_seconds='300' />
type='method'
name='stop'
exec='/export/mysoft/tomcat551/bin/stop.sh'
timeout_seconds='300' />



Tomcat5.5



C. 验证并使此配置服务生效 。
#svccfg validate /var/svc/manifest/application/server/tomcat/tomcat.xml
D.将此服务导入的系统服务仓库 。
#svccfg import /var/svc/manifest/application/server/tomcat/tomcat.xml
E.查看服务
# svcs tomcat
附录:
A.SMF常用命令
命令用途说明其它说明/usr/bin/svcs查看服务的状态用man 命令可以查看更多与这些命令相关的信息/usr/bin/svcadm用于管理服务实例/usr/bin/svcprop获取服务的配置属性/usr/sbin/svccfg导入/导出和修改服务的配置/usr/sbin/inetadm发现并配置inetd控制的服务/usr/sbin/inetconv讲inetd.conf文件配置转换成SMF的
配置文件格式 , 以便导入smfB.SMF使用到的目录
目录存放文件的说明注释/etc/svc存放配置文件/etc/svc/volatile用于存放服务的日值(在/var被挂载前)此目录挂载于RAM中/lib/svc/bin被SMF使用的二进制文件请不要手工执行这么目录下面的二进制文件/lib/svc/capture保留/lib/svc/method存放一些可以执行的SMF 方法脚本/lib/svc/monitor保留 , 用于监控Method命令/lib/svc/seed初始的SMF存放“仓库/lib/svc/share存放可以被Method脚本引用的其它脚本/var/svc/log用于存放服务的日值文件(/var被挂载后)/var/svc/manifests/*存放各种类型的配置清单文件建议不要修改Sun提供的系统默认配置清单文件/var/svc/manifests/site存放在某种特定情况下才特有的配置

推荐阅读