Solaris10 SMF服务管理概要( 三 )


Apache2 apache2 svc:/system/filesystem/autofs:default
sendmail sendmail svc:/network/smtp:sendmail
nfs nfs/server svc:/network/nfs/server:default
管理SMF服务
管理SMF服务包括配置、查看、启用/禁用、启动/停止服务等任务 。这些任务分别可以用svccfg, svcs, svcadm命令完成 。
svccfg命令
svccfg命令用来管理SMF repository 。运行不带参数的svccfg命令进入一个交互式的shell,在该shell里可以对服务、服务实例进行配置、导入、导出、备份、恢复操作 。
最常用的操作是新增一个SMF服务时导入该服务的manifest文件,可以使用svccfg import 的方法 。使用svccfg import时要注意在目前版本的Solaris中(版本小于等于Solaris 10 1/06 ),如果manifest xml文件语法有错,该命令不会报告xml文件出错的具体位置,只会报一个笼统的错误信息 。例如,postfix.xml文件的service元素没有闭合,运行以下命令:
-bash-3.00# svccfg -v import postfix.xml
svccfg: couldn't parse document
该命令会报无法解析文档的错误 。因此,编写完manifest xml文件应当验证一下文件的有效性 。
svcs命令
svcs用于查看服务的状态,
svcs -a用于查看所有状态的服务
svcs -x用于查看未正常启动的服务
svcs -l 用于查看单个服务的详细信息
svCADm命令
svcadm用来启用/禁用、启动/停止SMF服务 。
svcadm enable fmri -- 启用一个SMF服务,同时运行该服务
svcadm disable fmri -- 禁用一个SMF服务,同时停止该服务
svcadm restart fmri -- 重启一个SMF服务
svcadm refresh fmri -- 刷新一个SMF服务,相当于让服务重新载入配置文件
svcadm mark fmri -- 将SMF服务标记为维护状态
svcadm clear fmri -- 清除SMF服务的维护状态
svcadm milestone milestone -- 进入指定的服务里程碑,相当于进入相应的运行级别
如果不指定参数,svcadm将输出该命令的使用方法 。
如:
-bash-3.00# svcadm
Usage: svCADm [-v] [cmd [args ... ]]
svcadm enable [-rst] ... - enable and online service(s)
svcadm disable [-st] ... - disable and offline service(s)
svcadm restart ... - restart specifIEd service(s)
svcadm refresh ... - re-read service configuration
svcadm mark [-It] ... - set maintenance state
svcadm clear ... - clear maintenance state
svcadm milestone [-d] - advance to a service milestone
Services can be specified using an FMRI, abbreviation, or fnmatch(5)
pattern, as shown in these examples for svc:/network/smtp:sendmail
svcadm svc:/network/smtp:sendmail
svcadm network/smtp:sendmail
svcadm network/*mail
svcadm network/smtp
svcadm smtp:sendmail
svcadm smtp
svcadm sendmail
SMF服务排错
使用svcs -xv可以查找未正常启动的服务 。SMF对每个服务实例都在/var/svc/log目录创建了一个和服务FMRI对应的日志文件,比如apache2服务的FMRI为svc:/network/http:apache2,那么apache2服务状态变化的日志存放在名为network-http:apache2.log的文件中,
如运行以下命令
-bash-3.00# ls -l /var/svc/log |grep network
-rw-r--r-- 1 root root 534 Feb 9 00:08 milestone-network:default.log
-rw-r--r-- 1 root root 77 Jan 30 15:25 network-dns-client:default.log
-rw-r--r-- 1 root root 169 Jan 30 15:27 network-dns-server:default.log
-rw-r--r-- 1 root root 803 Feb 13 01:17 network-http:apache2.log
-rw-r--r-- 1 root root 2843 Jan 30 15:30 network-inetd-upgrade:default.log
-rw-r--r-- 1 root root 2929 Feb 12 01:58 network-inetd:default.log
-rw-r--r-- 1 root root 2835 Feb 12 01:58 network-initial:default.log
-rw-r--r-- 1 root root 77 Jan 30 15:25 network-ipfilter:default.log
-rw-r--r-- 1 root root 77 Jan 30 15:25 network-iscsi_initiator:default.log
输出的第四行列出了apache2服务的日志文件名 。通过查看这些文件可以获得服务未正常启动的线索 。

推荐阅读