Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1284186
  • 博文数量: 554
  • 博客积分: 10425
  • 博客等级: 上将
  • 技术积分: 7555
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 09:49
文章分类

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-08 19:00:07


第14 章• 管理服务(概述) 293
 device
 milestone
 network
 platform
 site
 system
传统的init.d 脚本也使用以lrc(而不是svc)开头的FMRI 进行表示,例如
:lrc:/etc/rcS_d/S35cacheos_sh。可使用SMF 对传统服务进行监视。但是,您无法管理这
些服务。
首次使用SMF 引导系统时,列在/etc/inetd.conf 中的服务会自动转换为SMF 服务。这些
服务的FMRI 稍有不同。已转换的inetd 服务的语法如下所示:
network//
另外,使用RPC(远程过程调用)协议的已转换服务的语法如下所示:
network/rpc-/rpc_
其中, 是在/etc/inetd.conf 中定义的名称, 是服务的协议。例
如,rpc.cmsd 服务的FMRI 是network/rpc-100068_2-5/rpc_udp。
服务状态
svcs 命令显示服务实例的状态、开始时间和FMRI。每个服务的状态都为下列状态之一:
 degraded-服务实例处于启用状态,但是以有限的功能运行。
 disabled-服务实例处于禁用状态且尚未运行。
 legacy_run-传统服务不由SMF 进行管理,但是可查看服务。此状态只能由传统服务使
用。
 maintenance-服务实例遇到错误,必须由管理员解决。
 offline-服务实例处于启用状态,但是尚未运行或者无法运行。
 online-服务实例处于启用状态,并且已成功启动。
 uninitialized-此状态是所有服务在配置经过读取之前的初始状态。
SMF 清单
SMF 清单是一个XML文件,其中包含与服务或服务实例相关的一整套属性。这些文件存储
在/var/svc/manifest 中。不应当使用清单来修改服务的属性。服务配置系统信息库是配置
信息的授权来源。要将清单中的信息引入到系统信息库中,必须运行svccfg import 或者允
许服务在系统引导过程中导入信息。
有关SMF 清单内容的完整说明,请参见service_bundle(4) 手册页。
SMF 概念
294 系统管理指南:基本管理• 2006 年7 月
SMF 配置文件
SMF 配置文件是一个XML文件,其中列出了在系统引导时启用的一组服务实例。配置文件
存储在/var/svc/profile 中。下面是所包括的一些配置文件:
 generic_open.xml-此配置文件可启用在早期Solaris 发行版中缺省启用的大多数标准
Internet 服务。这是缺省配置文件。
 generic_limited_net.xml-此配置文件禁用许多标准Internet 服务。启动了sshd 服务和
NFS 服务,但是其余的多数Internet 服务处于禁用状态。
有关使用配置文件的更多信息,请参见第313 页中的“如何使用其他SMF 配置文件”。
服务配置系统信息库
服务配置系统信息库存储服务的持久性配置信息以及SMF 运行时数据。系统信息库在本地
内存和本地文件之间分布。SMF 的设计旨在最终可以用网络目录服务表示服务数据。网络
目录服务尚不可用。服务配置系统信息库中的数据可实现许多Solaris 实例之间的配置信息
共享和管理简化。服务配置系统信息库只能使用SMF 界面进行处理和查询。有关处理和访
问系统信息库的更多信息,请参见svccfg(1M) 和svcprop(1) 手册页。在svc.configd(1M)
手册页中介绍服务配置系统信息库守护进程。在libscf(3LIB) 手册页中对服务配置库进行
了说明。
SMF 系统信息库备份
SMF 自动对系统信息库执行下列备份操作:
 在每次系统启动过程中,在即将对系统信息库进行首次更改之前,会执行引导备份。
 在svc:/system/manifest-import:default 完成之后,如果manifest_import 备份导入了
任何新的清单,或者运行了任何升级脚本,则将发生此备份。
系统将为上述两种类型各维护四个备份。系统会在必要时删除最旧的备份。备份存储为
/etc/svc/repository -type-YYYYMMDD_HHMMSWS,其中YYYYMMDD(年、月和日)
和HHMMSS(小时、分钟和秒)是执行备份的日期和时间。请注意,小时格式基于24 小时
制。
在发生错误时,可以从这些备份中恢复系统信息库。为此,可使用
/lib/svc/bin/restore_repository 命令。有关更多信息,请参见第324 页中的“如何修复
已损坏的系统信息库”。
SMF 快照
服务配置系统信息库中的数据包括快照以及可编辑的配置。每个服务实例的相关数据都存
储在快照中。标准快照如下所示:
 initial-在首次导入清单时提取
SMF 概念
第14 章• 管理服务(概述) 295
 running-在执行服务的方法时使用
 start-在最后一次成功启动时提取
始终使用running 快照执行SMF 服务。如果此快照不存在,系统将自动创建。
svcadm refresh 命令(有时后跟svcadm restart 命令)能够激活快照。svccfg 命令用于查看
或恢复到以前快照中的实例配置。
SMF 管理接口和编程接口
本节介绍在使用SMF 时可用的接口。
SMF 命令行管理实用程序
SMF 提供一组与SMF 交互,并完成标准管理任务的命令行实用程序。下列实用程序可用来
管理SMF。
表14–1服务管理工具实用程序
命令名称功能
inetadm 提供观察或配置由inetd 控制的服务的功能
svcadm 提供执行常见服务管理任务(如启用、禁用或重新启动服务实例)的
功能
svccfg 提供显示和处理服务配置系统信息库内容的功能
svcprop 从服务配置系统信息库中检索属性值,并采用适用于shell 脚本的输
出格式
svcs 提供服务配置系统信息库中所有服务实例的服务状态的详细视图
服务管理配置库接口
SMF 提供一组编程接口,这些接口可用于通过svc.configd 守护进程与服务配置系统信息库
进行交互。此守护进程是对本地和远程系统信息库数据库的所有请求的仲裁程序。系统将
一组基本接口定义为与服务配置系统信息库中的服务进行最低级别的交互。这些接口提供
对所有服务配置系统信息库功能(如事务和快照)的访问。
对于许多开发者来说,只需要一组常见的任务即可与SMF 交互。这些任务在基本服务的基
础上作为易于使用的功能来实现,从而减轻了实现的难度。
SMF 管理接口和编程接口
296 系统管理指南:基本管理• 2006 年7 月
SMF 组件
SMF 包括一个主重新启动器守护进程和多个委托的重新启动器。
SMF 主重新启动器守护进程
svc.startd 守护进程是Solaris OS 的主进程启动器和重新启动器。该守护进程负责管理整个
系统的服务相关性。该守护进程接管了init 以前的职责,即在适当的运行级启动相应的
/etc/rc*.d 脚本。首先,svc.startd 检索服务配置系统信息库中的信息。接着,该守护进
程在服务的相关性得以满足时启动服务。该守护进程还负责重新启动失败的服务,并负责
关闭不再满足相关性的服务。该守护进程通过事件(如进程停止),借助于操作系统的可
用性视图来跟踪服务状态。
SMF 委托的重新启动器
有些服务在启动时具有一组共同的行为。为了提供这些服务之间的共同性,委托的重新启
动器可能会负责这些服务。另外,委托的重新启动器可用来提供更复杂的或特定于应用程
序的重新启动行为。委托的重新启动器可以支持一组不同的方法,但是会将相同的服务状
态作为主重新启动器导出。重新启动器的名称随服务一同存储。委托的重新启动器的最新
示例是inetd,它能够按需启动Internet 服务,而不是使服务始终保持运行。
SMF 和引导
SMF 提供用来引导系统的新方法。例如:
 有另外一个与all 里程碑相关联的系统状态。此里程碑不同于多用户init 状态,因为
SMF 只能识别定义的服务。如果您添加了服务(如第三方产品),那么,除非您使用下
面的命令,否则它们可能不会自动重新启动:
ok boot -m milestone=all
 如果使用某个里程碑引导系统,一定要同时使用-s 选项。如果未包括-s,则系统将停
留在引导系统时所处的里程碑状态。通过按Ctrl-D,系统将不会自动进入多用户状态。
可以使用以下命令进入多用户状态:
# svcadm milestone all
 在引导系统时,可以选择使用verbose 选项来查看更多的消息。缺省情况下,系统将不
显示这些消息。要在详细模式下引导,请使用以下命令:
ok boot -mverbose
SMF 和引导
第14 章• 管理服务(概述) 297
SMF 兼容性
尽管现在许多标准的Solaris 服务由SMF 来管理,位于/etc/rc*.d 中的脚本仍能继续在运行
级转换中执行。包括在以前的Solaris 发行版中的多数/etc/rc*.d 脚本都已经作为SMF 的一
部分删除。其余的脚本能够继续运行,从而在不必将服务转换为使用SMF 的情况下,添加
第三方应用程序。
另外,对于要使用安装后的脚本改正的软件包,/etc/inittab 和/etc/inetd.conf 必须可
用。这些称为传统运行服务。通过运行inetconv 命令,可以将这些传统运行服务添加到服
务配置系统信息库中。您可以查看这些服务的状态,但是SMF 不支持进行其他更改。使用
此功能的应用程序将不会受益于SMF 所提供的精确的故障隔离。
转换为利用SMF 的应用程序可能无法再修改/etc/inittab 和/etc/inetd.conf 文件。已转
换的应用程序将不使用/etc/rc*.d 脚本。同样,新版本的inetd 不会在/etc/inetd.conf 中
查找项。
运行级
系统的运行级(又称作init 状态)定义用户可以使用哪些服务和资源。系统一次只能在一个
运行级下运行。
Solaris OS 具有八个运行级,下表对其进行了说明。在/etc/inittab 文件中,缺省的运行级
指定为运行级3。
表14–2 Solaris 运行级
运行级Init 状态类型用途
0 电源关闭状态电源关闭关闭操作系统,以便可以安全地关闭系统电
源。
s 或S 单用户状态单用户以单用户身份运行,挂载并且能够访问某些
文件系统。
1 管理状态单用户访问所有可用的文件系统。用户登录功能处
于禁用状态。
2 多用户状态多用户用于正常操作。多个用户可以访问系统和所
有的文件系统。除NFS 服务器守护进程以外
的所有守护进程都在运行。
3 共享NFS 资源的多用户级别多用户用于共享NFS 资源情况下的正常操作。这是
Solaris OS 的缺省运行级。
4 替换多用户状态在缺省情况下未配置,但是可供客户使用。
SMF 兼容性
298 系统管理指南:基本管理• 2006 年7 月
表14–2 Solaris 运行级(续)
运行级Init 状态类型用途
5 电源关闭状态电源关闭关闭操作系统,以便可以安全地关闭系统电
源。如有可能,自动关闭支持此功能的系统
的电源。
6 重新引导状态重新引导将系统关闭到运行级0,然后重新引导到共享
NFS 资源的多用户级别(或者inittab 文件
中的任何缺省级别)。
另外,svcadm 命令可用于更改系统的运行级,方法是选择系统要在其下运行的里程碑。下
表显示了与每个里程碑相对应的运行级。
表14–3 Solaris 运行级和SMF里程碑
运行级SMF 里程碑FMRI
S milestone/single-user:default
2 milestone/multi-user:default
3 milestone/multi-user-server:default
确定系统的运行级
通过使用who -r 命令来显示运行级信息。
$ who -r
使用who -r 命令可以为以前的任何级别确定系统当前的运行级。
示例14–1确定系统的运行级
本示例显示系统的当前运行级以及以前的运行级的相关信息。
$ who -r
. run-level 3 Dec 13 10:10 3 0 S
$
who -r 命令的输出说明
run-level 3 标识当前的运行级
Dec 13 10:10 标识上次更改运行级的日期
运行级
第14 章• 管理服务(概述) 299
示例14–1 确定系统的运行级(续)
who -r 命令的输出说明
3 也标识当前的运行级
0 标识自上次重新引导以来系统处于该运行级的次

S 标识以前的运行级
/etc/inittab 文件
当您使用init 或shutdown 命令引导系统或更改运行级时,init 守护进程会通过从
/etc/inittab 文件中读取信息来启动进程。此文件为init 进程定义以下重要的项:
 init 进程将重新启动的项
 在终止时要启动、监视和重新启动的进程
 在系统进入新运行级时执行的操作
/etc/inittab 文件中的每一项都具有以下字段:
id:rstate :action:process
下表描述了inittab 项中的字段。
表14–4 inittab 文件的字段说明
字段说明
id 项的唯一标识符。
rstate 列出此项适用的运行级。
action 标识如何运行在进程字段中指定的进程。可能的值包括:sysinit、boot、
bootwait、wait 和respawn。
有关其他操作关键字的说明,请参见inittab(4)。
process 定义要执行的命令或脚本。
示例14–2 缺省的inittab 文件
以下示例显示随该Solaris 发行版安装的缺省inittab 文件。后面是该示例中每个输出行的说
明。
ap::sysinit:/sbin/autopush -f /etc/iu.ap (1)
sp::sysinit:/sbin/soconfig -f /etc/sock2path (2)
/etc/inittab 文件
300 系统管理指南:基本管理• 2006 年7 月
示例14–2 缺省的inittab 文件(续)
smf::sysinit:/lib/svc/bin/svc.startd >/dev/msglog 2<>/dev/msglog (3)
p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/... (4)
1. 初始化STREAMS 模块
2. 配置套接字传输提供器
3. 初始化SMF 的主重新启动器
4. 描述因电源故障而造成的关机
当系统能够在运行级3 下工作时出现的情况
1. init 进程将启动,并读取/etc/default/init 文件以设置任何环境变量。缺省情况下,
仅设置TIMEZONE 变量。
2. 然后,init 读取inittab 文件并执行下列操作:
a. 执行action 字段中包含sysinit 的所有进程项,以便在用户登录之前执行所有特殊
的初始化。
b. 将启动活动传递到svc.startd。
有关init 进程如何使用inittab 文件的详细说明,请参见init(1M)。
下表描述了在运行级3 的action 字段中使用的关键字。
表14–5 运行级3 的操作关键字说明
关键字说明
powerfail 在init 进程收到电源故障信号时启动powerfail 进程
respawn 启动该进程并在其中止时重新启动
wait 启动该进程,等待它完成后转至此运行级的下一项
下表描述了在运行级3 执行的进程(或命令)。
表14–6 运行级3 的命令说明
命令或脚本的名称说明
/usr/sbin/shutdown 关闭系统。只有当系统收到电源故障信号时,init 进程才
运行shutdown 命令。
/sbin/rcS 检查和挂载root (/)、/usr、/tmp、/var、/var/adm 和
/var/run 文件系统。
/etc/inittab 文件
第14 章• 管理服务(概述) 301
表14–6 运行级3 的命令说明(续)
命令或脚本的名称说明
/sbin/rc2 启动标准的系统进程,将系统启动到运行级2(多用户级
别)。
/sbin/rc3 针对运行级3 启动NFS 资源共享功能。
运行控制脚本
Solaris 软件提供一系列详细的运行控制(rc) 脚本,这些脚本可用来控制对运行级进行的更
改。每个运行级都有一个与之相关的rc 脚本,该脚本位于/sbin 目录中:
 rc0
 rc1
 rc2
 rc3
 rc5
 rc6
 rcS
对于/sbin 目录中的每个rc 脚本,有一个名为/etc/rcn.d 的相应目录,其中包含执行该运
行级的各种操作所需的脚本。例如,/etc/rc2.d 包含用来启动和停止运行级2 的进程的文
件。
# ls /etc/rc2.d
K03samba S42ncakmod S81dodatadm.udaplt
K05volmgt S47pppd S89PRESERVE
K06mipagent S65ipfboot S89bdconfig
K07dmi S69mrouted S90wbem
K07snmpdx S70sckm S93cacheos.finish
K16apache S70uucp S94ncalogd
K27boot.server S72autoinstall S95ncad
README S73cachefs.daemon S95networker
S10lu S75savecore S98deallocate
S20sysetup S80lp S99audit
S40llc2 S80spc
运行控制脚本
302 系统管理指南:基本管理• 2006 年7 月
/etc/rcn.d 脚本总是按ASCII 排序顺序运行。脚本的名称具有如下形式:
[KS][0-9][0-9]*
运行以K 开头的文件可以终止(中止)系统服务。运行以S 开头的文件可以启动系统服务。
运行控制脚本位于/etc/init.d 目录中。这些文件链接到/etc/rc n.d 目录中相应的运行控
制脚本。
下一节概述了每个运行控制脚本的操作。
运行控制脚本摘要
以下几节概述了在更改运行级时用来启动和停止系统服务的运行控制脚本。
/sbin/rc0 脚本
/sbin/rc0 脚本运行/etc/rc0.d 脚本以执行下列任务:
 停止系统服务和守护进程
 终止所有正在运行的进程
 卸载所有的文件系统
/sbin/rc1 脚本
/sbin/rc1 脚本运行/etc/rc1.d 脚本以执行下列任务:
 停止系统服务和守护进程
 终止所有正在运行的用户进程
 卸载所有的远程文件系统
 挂载所有的本地文件系统(如果以前的运行级为S)
/sbin/rc2 脚本
/sbin/rc2 脚本运行/etc/rc2.d 脚本以执行下列任务,这些任务按功能进行分组:
与本地系统有关的任务:
 启动系统记帐和系统审计功能(如果已配置)
 设置缺省的调度类(如果/etc/dispadmin.conf 文件存在)
 配置串行设备流
 配置WBEM(基于Web 的企业管理)服务
与网络服务或安全有关的任务:
 启动逻辑链路控制器(llc2)(如果已配置)
 配置Solaris 网络缓存和加速器(Network Cache and Accelerator, NCA) 和NCA日志记录
(如果适用)
运行控制脚本
第14 章• 管理服务(概述) 303
 启动Solaris PPP 服务器或客户机守护进程(pppoed 或pppd)(如果已配置)
 启动目录服务器(slapd) 守护进程(如果已配置)
 配置系统资源控制和系统池(如果/etc/rctladm.conf 和/etc/pooladm.conf 文件存在)
 启动htt_server 进程
与安装有关的任务:
 在系统启动或关闭时为Live Upgrade 软件配置引导环境
 检查/etc/.UNCONFIGURE 文件是否存在,查看是否应当重新配置系统
 从安装介质或引导服务器重新引导系统(如果/.PREINSTALL 或/AUTOINSTALL 存在)
与硬件有关的任务:
 启动Sun FireTM 15000 密钥管理守护进程(sckmd)(如果适用)
 运行快擦写存储器更新脚本
 配置任何图形框架缓冲区或图形加速器
在运行级更改之间转换下列服务:
 Apache (tomcat)
 移动IP (mipagent)
 Samba(smdb 和nmdb)
 Solstice Enterprise AgentsTM 守护进程( dmispd 和snmpXdmid)
注– 在运行级2 启动的许多系统服务和应用程序取决于系统上安装的软件。
/sbin/rc3 脚本
/sbin/rc3 脚本运行/etc/rc3.d 脚本以执行下列任务:
 启动Apache 服务器守护进程(tomcat)(如果已配置)
 启动移动IP 守护进程(mipagent)(如果已配置)
 启动Samba 守护进程(smdb 和nmdb )(如果已配置)
 启动Solstice Enterprise Agents 守护进程(dmispd 和snmpXdmid)
/sbin/rc5 和/sbin/rc6 脚本
/sbin/rc5 和/sbin/rc6 脚本运行/etc/rc0.d/K* 脚本以执行下列任务:
 中止所有的活动进程
 卸载文件系统
/sbin/rcS 脚本
/sbin/rcS 脚本运行/etc/rcS.d 脚本以将系统启动到运行级S。此脚本启动wrsmconf 来管理
WCI RSM 控制器配置。
运行控制脚本
304 系统管理指南:基本管理• 2006 年7 月
管理服务(任务)
本章介绍了管理和监视服务管理工具(Service Management Facility, SMF) 所需的任务。另外,
本章还提供了与管理运行级脚本有关的信息。本章包含以下主题:
 第305 页中的“管理SMF 服务(任务图)”
 第306 页中的“监视SMF 服务”
 第309 页中的“管理SMF 服务”
 第313 页中的“配置SMF 服务”
 第320 页中的“使用运行控制脚本”
 第323 页中的“对服务管理工具进行疑难解答”
管理SMF 服务(任务图)
以下任务图说明了使用SMF 所需的过程。
任务说明参考
显示服务实例的状态。显示所有正在运行的服务实例的状态。第306 页中的“如何列出服务的状态”
显示服务相关项。显示依赖指定服务的服务。第308 页中的“如何显示依赖某个服务
实例的服务”
显示服务的相关性。显示指定服务所依赖的服务。此信息可
用来帮助确定阻止服务启动的因素。
第308 页中的“如何显示某个服务所依
赖的服务”
禁用服务实例。关闭未正常工作或需要关闭以增强安全
性的服务。
第309 页中的“如何禁用服务实例”
启用服务实例启动服务。第310 页中的“如何启用服务实例”
重新启动服务实例。重新启动服务,而不必使用单独的命令
先禁用服务,然后再启用服务。
第311 页中的“如何重新启动服务”
15 第1 5 章
305
任务说明参考
修改服务实例。修改指定服务实例的配置参数。第313 页中的“如何修改服务”
更改由inetd 控制的服务的配置属性。第315 页中的“如何更改由inetd 控制
的服务的属性”
更改由inetd 控制的服务的启动选项。第317 页中的“如何修改由inetd 控制
的服务的命令行参数”
转换inetd.conf 项。将inetd 服务转换为可使用SMF 来监视
的传统运行服务。
第319 页中的“如何转换inetd.conf
项”
修复损坏的服务配置系统信息库。将损坏的系统信息库替换为缺省版本。第324 页中的“如何修复已损坏的系统
信息库”
不用里程碑引导系统。不用里程碑引导系统,以便可以修复那
些阻止引导的配置问题。
第327 页中的“如何在引导过程中以交
互方式启动服务”
监视SMF 服务
下列任务显示如何监视SMF 服务。
 如何列出服务的状态
以下过程可用来显示哪些服务正在运行。
运行svcs 命令。
在不使用任何选项的情况下运行此命令,会显示由FMRI 指定的服务的状态报告。
% svcs -l FMRI
显示rlogin 服务的状态
以下示例显示包括许多合同的服务的状态。
% svcs -l network/login:rlogin
fmri svc:/network/login:rlogin
enabled true
state online
next_state none
restarter svc:/network/inetd:/default

示例15–1
监视SMF 服务
306 系统管理指南:基本管理• 2006 年7 月
contract_id 42325 41441 40776 40348 40282 40197 39025 38381 38053\
33697 28625 24652 23689 15352 9889 7194 6576 6360 5387 1475 3015\
6545 6612 9302 9662 10484 16254 19850 22512 23394 25876 26113 27326\
34284 37939 38405 38972 39200 40503 40579 41129 41194
显示sendmail 服务的状态
以下示例显示包括相关性的服务的状态。
% svcs -l network/smtp:sendmail
fmri svc:/network/smtp:sendmail
enabled true
state online
next_state none
restarter svc:/system/svc/restarter:default
contract_id 29462
dependency require_all/refresh (-)
dependency require_all/refresh (-)
dependency optional_all/none svc:/system/system-log (online)
dependency require_all/refresh svc:/system/identity:domain (online)
dependency require_all/refresh svc:/milestone/name-services (online)
dependency require_all/none svc:/network/service (online)
dependency require_all/none svc:/system/filesystem/local (online)
显示所有服务的状态
以下命令列出系统上安装的所有服务以及每个服务的状态。该命令既显示已禁用的服务又
显示已启用的服务。
% svcs -a
示例15–2
示例15–3
监视SMF 服务
第15 章• 管理服务(任务) 307
显示由inetd 控制的服务的状态
以下命令列出由inetd 控制的服务,其中包括每个服务的FMRI、运行状态以及服务是处于
启用还是禁用状态。
% inetadm
 如何显示依赖某个服务实例的服务
以下过程显示如何确定依赖指定服务的服务实例。
显示服务相关项。
% svcs -D FMRI
显示依赖多用户里程碑的服务实例
以下示例显示如何确定依赖多用户里程碑的服务实例。
% svcs -D milestone/multi-user
STATE STIME FMRI
online Apr_08 svc:/milestone/multi-user-server:default
 如何显示某个服务所依赖的服务
以下过程显示如何确定指定的服务实例所依赖的服务。
显示服务相关性。
% svcs -d FMRI
显示多用户里程碑所依赖的服务实例
以下示例显示多用户里程碑所依赖的服务实例。
% svcs -d milestone/multi-user:default
STATE STIME FMRI
disabled Aug_24 svc:/platform/sun4u/sf880drd:default
online Aug_24 svc:/milestone/single-user:default
示例15–4

示例15–5

示例15–6
监视SMF 服务
308 系统管理指南:基本管理• 2006 年7 月
online Aug_24 svc:/system/utmp:default
online Aug_24 svc:/system/system-log:default
online Aug_24 svc:/system/system-log:default
online Aug_24 svc:/system/rmtmpfiles:default
online Aug_24 svc:/network/rpc/bind:default
online Aug_24 svc:/milestone/name-services:default
online Aug_24 svc:/system/filesystem/local:default
online Aug_24 svc:/system/mdmonitor:default
管理SMF 服务
本节包括有关管理SMF 服务的信息。
对于SMF 使用RBAC 权利配置文件
可以使用RBAC 权利配置文件来允许用户管理某些SMF 服务,而不必授予用户root 访问权
限。权利配置文件定义用户可以运行哪些命令。已经为SMF 创建了下列配置文件:
 Service Management用户可以添加、删除或修改服务。
 Service Operator-用户可以请求对任何服务实例的状态进行更改(如重新启动和刷
新)。
有关授权的具体信息,请参见smf_security(5) 手册页。有关指定权利配置文件的说明,请
参见《System Administration Guide: Security Services》中的“How to Change the RBAC
Properties of a User”。
 如何禁用服务实例
请使用以下过程禁用服务。服务状态更改记录在服务配置系统信息库中。服务一旦被禁
用,其禁用状态将持续到重新引导之后。使服务重新运行的唯一方法就是启用服务。
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
1
管理SMF 服务
第15 章• 管理服务(任务) 309
检查要禁用的服务的相关项。
如果此服务具有所需的相关项,则无法禁用此服务。
# svcs -D FMRI
禁用此服务。
# svcadm disable FMRI
禁用rlogin 服务
第一个命令的输出表明rlogin 服务没有相关项。本示例中的第二个命令禁用rlogin 服务。
第三个命令显示rlogin 服务实例处于禁用状态。
# svcs -D network/login:rlogin
# svcadm disable network/login:rlogin
STATE STIME FMRI
# svcs network/login:rlogin
STATE STIME FMRI
disabled 11:17:24 svc:/network/login:rlogin
 如何启用服务实例
请使用以下过程启用服务。服务状态更改记录在服务配置系统信息库中。服务一旦被启
用,则只要符合服务相关性,系统每次重新引导后仍将保持该启用状态。
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
确定是否满足服务相关性。
如果服务处于启用状态,则说明满足了服务相关性。否则,请使用svcadm enable -r FMRI
以递归方式启用所有的相关性。
# svcs -l FMRI|grep enabled
启用服务。
# svcadm enable FMRI
启用rlogin 服务
本示例中的第二个命令启用rlogin 服务。第三个命令显示rlogin 服务实例处于联机状态。
2
3
示例15–7
1
2
3
示例15–8
管理SMF 服务
310 系统管理指南:基本管理• 2006 年7 月
# svcs -l network/login:rlogin|grep enabled
enabled false
# svcadm enable network/login:rlogin
# svcs network/login:rlogin
STATE STIME FMRI
online 12:09:16 svc:/network/login:rlogin
在单用户模式下启用服务
以下命令启用rpcbind。-t 选项在不更改服务系统信息库的临时模式下启动服务。在单用户
模式下,系统信息库不可写。-r 选项以递归方式启动指定服务的所有相关性。
# svcadm enable -rt rpc/bind
 如何重新启动服务
如果由于配置更改或其他原因而需要重新启动当前正在运行的服务,那么,可以重新启动
该服务,而不必键入单独的命令来先停止后启动该服务。只有必须在禁用服务之后、启用
服务之前更改配置时,才需要特意地先禁用服务,然后再启用。
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
重新启动服务。
# svcadm restart FMRI
 如何恢复处于维护状态的服务
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
确定依赖该服务的任何进程是否已停止。
通常,当某个服务实例处于维护状态时,与该实例相关的所有进程均已停止。但是,您应
当在继续操作之前确保这一点。以下命令将列出与某个服务实例相关的所有进程以及这些
进程的PID(进程标识符)。
# svcs -p FMRI
示例15–9
1
2
1
2
管理SMF 服务
第15 章• 管理服务(任务) 311
(可选的)中止剩余的所有进程。
对于由svcs 命令显示的所有进程重复上述步骤。
# pkill -9 PID
如有必要,请修复服务配置。
有关错误的列表,请查看/var/svc/log 中相应的服务日志文件。
恢复此服务。
# svcadm clear FMRI
 如何恢复到另一个SMF 快照
如果服务配置有误,则可以通过恢复到上次成功启动的快照来修复问题。在以下过程中,
使用的是console-login 服务以前的快照。
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
运行svccfg 命令。
# svccfg
svc:>
a. 选择要修复的服务实例。
注– 必须使用对该实例进行完全定义的FMRI,而不允许使用快捷方式。
svc:> select system/console-login:default
svc:/system/console-login:default>
b. 创建可用快照的列表。
svc:/system/console-login:default> listsnap
initial
running
start
svc:/system/console-login:default>
3
4
5
1
2
管理SMF 服务
312 系统管理指南:基本管理• 2006 年7 月
c. 选择或恢复到start 快照。
start 快照是上次成功启动服务时的快照。
svc:/system/console-login:default> revert start
svc:/system/console-login:default>
d. 退出svccfg。
svc:/system/console-login:default> quit
#
更新服务配置系统信息库中的信息。
该步骤用start 快照中的配置信息更新系统信息库。
# svcadm refresh system/console-login
重新启动服务实例。
# svcadm restart system/console-login
 如何使用其他SMF 配置文件
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
选择要使用的SMF 配置文件。
在本示例中使用的是generic_limited_net.xml 配置文件。
# svccfg apply /var/svc/profile/generic_limited_net.xml
配置SMF 服务
 如何修改服务
以下过程显示如何更改不是由inetd 服务管理的服务的配置。
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
3
4
1
2
1
配置SMF 服务
第15 章• 管理服务(任务) 313
根据需要对配置文件进行更改。
许多服务都有一个或多个用来定义启动或其他配置信息的配置文件。这些文件可以在服务
正在运行时进行更改。只有当服务已经启动后,才能检查这些文件的内容。
重新启动服务。
# svcadm restart FMRI
共享NFS 文件系统
要使用NFS 服务共享文件系统,必须在/etc/dfs/dfstab 文件中定义NFS 文件系统,然后
重新启动NFS 服务。以下示例显示dfstab 文件的外观以及如何重新启动服务。
# cat /etc/dfs/dfstab
.
.
share -F nfs -o rw /export/home
# svcadm restart svc:/network/nfs/server
 如何更改服务的环境变量
以下过程显示如何修改cron 环境变量以帮助进行调试。
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
检验该服务是否正在运行。
# svcs system/cron
STATE STIME FMRI
online Dec_04 svc:/system/cron:default
设置环境变量。
在本示例中,设置的是UMEM_DEBUG 和LD_PRELOAD 环境变量。有关setenv 子命令的信息,请
参阅svccfg(1M) 手册页。
# svccfg -s system/cron:default setenv UMEM_DEBUG default
# svccfg -s system/cron:default setenv LD_PRELOAD libumem.so
2
3
示例15–10
1
2
3
配置SMF 服务
314 系统管理指南:基本管理• 2006 年7 月
刷新和重新启动该服务。
# svcadm refresh system/cron
# svcadm restart system/cron
检验是否已进行更改。
# pargs -e ‘pgrep -f /usr/sbin/cron‘
100657: /usr/sbin/cron
envp[0]: LOGNAME=root
envp[1]: LD_PRELOAD=libumem.so
envp[2]: PATH=/usr/sbin:/usr/bin
envp[3]: SMF_FMRI=svc:/system/cron:default
envp[4]: SMF_METHOD=/lib/svc/method/svc-cron
envp[5]: SMF_RESTARTER=svc:/system/svc/restarter:default
envp[6]: TZ=GB
envp[7]: UMEM_DEBUG=default
#
 如何更改由inetd 控制的服务的属性
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
列出指定服务的属性。
以下命令显示由FMRI 标识的服务的所有属性。
# inetadm -l FMRI
更改该服务的属性。
由inetd 控制的服务的每个属性都由属性名和指定的值来定义。提供属性名而不指定值会将
属性重置为缺省值。有关服务属性的具体信息应包含在与该服务相关的手册页中。
# inetadm -m FMRI property-name=value
4
5
1
2
3
配置SMF 服务
第15 章• 管理服务(任务) 315
检验属性是否已更改。
再次列出属性以确保已进行相应的更改。
# inetadm -l FMRI
确认更改已生效。
确认属性更改达到了所需的效果。
更改telnet 的tcp_trace 属性
以下示例显示如何将telnet 的tcp_trace 属性设置为true。在运行telnet 命令之后,检查
syslog 的输出,此时会发现所做的更改已经生效。
# inetadm -l svc:/network/telnet:default
SCOPE NAME=VALUE
name="telnet"
.
.
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
# inetadm -m svc:/network/telnet:default tcp_trace=TRUE
# inetadm -l svc:/network/telnet:default
SCOPE NAME=VALUE
name="telnet"
.
.
default inherit_env=TRUE
tcp_trace=TRUE
default tcp_wrappers=FALSE
# telnet localhost
4
5
示例15–11
配置SMF 服务
316 系统管理指南:基本管理• 2006 年7 月
Trying 127.0.0.1...
Connected to localhost.
Escape character is ’^]’.
login: root
Password:
Last login: Mon Jun 21 05:55:45 on console
Sun Microsystems Inc. SunOS 5.10 s10_57 May 2004
# ^D
Connection to localhost closed by foreign host.
# tail -1 /var/adm/messages
Jun 21 06:04:57 yellow-19 inetd[100308]: [ID 317013 daemon.notice] telnet[100625]
from 127.0.0.1 32802
 如何修改由inetd 控制的服务的命令行参数
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
列出特定服务的exec 属性。
以下命令显示由FMRI 标识的服务的所有属性。添加grep 命令会将输出限制在该服务的
exec 属性。
# inetadm -l FMRI|grep exec
更改该服务的exec 属性。
具有exec 属性的command-syntax 集定义在启动服务时运行的命令字符串。
# inetadm -m FMRI exec="command-syntax"
检验属性是否已更改。
再次列出属性以确保已进行相应的更改。
# inetadm -l FMRI
1
2
3
4
配置SMF 服务
第15 章• 管理服务(任务) 317
向ftp 命令添加连接日志(-l) 选项
在以下示例中,当ftp 守护进程启动时,会向其中添加-l 选项。此更改的效果可通过在ftp
登录会话已经完成之后,检查syslog 输出来查看。
# inetadm -l svc:/network/ftp:default | grep exec
exec="/usr/sbin/in.ftpd -a"
# inetadm -m svc:/network/ftp:default exec="/usr/sbin/in.ftpd -a -l"
# inetadm -l svc:/network/ftp:default
SCOPE NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -a -l"
.
.
# ftp localhost
Connected to localhost.
220 yellow-19 FTP server ready.
Name (localhost:root): mylogin
331 Password required for mylogin.
Password:
230 User mylogin logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
示例15–12
配置SMF 服务
318 系统管理指南:基本管理• 2006 年7 月
ftp> quit
221-You have transferred 0 bytes in 0 files.
221-Total traffic for this session was 236 bytes in 0 transfers.
221-Thank you for using the FTP service on yellow-19.
221 Goodbye.
# tail -2 /var/adm/messages
Jun 21 06:54:33 yellow-19 ftpd[100773]: [ID 124999 daemon.info] FTP LOGIN FROM localhost
[127.0.0.1], mylogin
Jun 21 06:54:38 yellow-19 ftpd[100773]: [ID 528697 daemon.info] FTP session closed
 如何转换inetd.conf 项
以下过程将inetd.conf 项转换为SMF 服务清单。无论何时向系统添加依赖inetd 的第三方
应用程序,都需要运行此过程。如果您需要更改/etc/inetd.conf 中项的配置,也需要运行
此过程。
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
转换inetd.conf 项。
inetconv 命令将选定文件中的每个项都转换为服务清单。
# inetconv -i filename
将/etc/inet/inetd.conf 项转换为SMF 服务清单
# inetconv -i /etc/inet/inetd.conf
1
2
示例15–13
配置SMF 服务
第15 章• 管理服务(任务) 319
使用运行控制脚本(任务图)
任务说明参考
停止或启动服务。使用运行控制脚本停止或启动服务。第320 页中的“如何使用运行控制脚本来
停止或启动传统服务”
添加运行控制脚本。创建运行控制脚本并将其添加到/etc/init.d
目录中。
第321 页中的“如何添加运行控制脚本”
禁用运行控制脚本。通过重命名运行控制脚本文件来禁用该脚本。第322 页中的“如何禁用运行控制脚本”
使用运行控制脚本
 如何使用运行控制脚本来停止或启动传统服务
每个运行级都有单独脚本的一个优点是,可以在/etc/init.d 目录中单独运行脚本来停止系
统服务,而不必更改系统的运行级。
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
停止系统服务。
# /etc/init.d/filename stop
重新启动系统服务。
# /etc/init.d/filename start
检验服务是否已停止或启动。
# pgrep -f service
使用运行控制脚本停止或启动服务
例如,可以通过键入以下命令来停止NFS 服务器守护进程:
# /etc/init.d/nfs.server stop
# pgrep -f nfs
然后,可以通过键入以下命令来重新启动NFS 服务器守护进程:
1
2
3
4
示例15–14
使用运行控制脚本(任务图)
320 系统管理指南:基本管理• 2006 年7 月
# /etc/init.d/nfs.server start
# pgrep -f nfs
101773
101750
102053
101748
101793
102114
# pgrep -f nfs -d, | xargs ps -fp
UID PID PPID C STIME TTY TIME CMD
daemon 101748 1 0 Sep 01 ? 0:06 /usr/lib/nfs/nfsmapid
daemon 101750 1 0 Sep 01 ? 26:27 /usr/lib/nfs/lockd
daemon 101773 1 0 Sep 01 ? 5:27 /usr/lib/nfs/statd
root 101793 1 0 Sep 01 ? 19:42 /usr/lib/nfs/mountd
daemon 102053 1 0 Sep 01 ? 2270:37 /usr/lib/nfs/nfsd
daemon 102114 1 0 Sep 01 ? 0:35 /usr/lib/nfs/nfs4cbd
 如何添加运行控制脚本
如果要添加用来启动和停止服务的运行控制脚本,请将该脚本复制到/etc/init.d 目录中。
然后,在要从其中启动和停止服务的rcn.d 目录中创建链接。
有关对运行控制脚本进行命名的更多信息,请参见每个/etc/rcn.d 目录中的README 文件。
以下过程介绍如何添加运行控制脚本。
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
1
使用运行控制脚本
第15 章• 管理服务(任务) 321
将脚本添加到/etc/init.d 目录中。
# cp filename /etc/init.d
# chmod 0744 /etc/init.d/filename
# chown root:sys /etc/init.d/filename
创建指向相应rc n.d 目录的链接。
# cd /etc/init.d
# ln filename /etc/rc2.d/Snnfilename
# ln filename /etc/rcn.d/Knnfilename
检验脚本在指定的目录中是否具有链接。
# ls /etc/init.d/*filename /etc/rc2.d/*filename /etc/rcn.d/*filename
添加运行控制脚本
以下示例显示如何为xyz 服务添加运行控制脚本。
# cp xyz /etc/init.d
# chmod 0744 /etc/init.d/xyz
# chown root:sys /etc/init.d/xyz
# cd /etc/init.d
# ln xyz /etc/rc2.d/S99xyz
# ln xyz /etc/rc0.d/K99xyz
# ls /etc/init.d/*xyz /etc/rc2.d/*xyz /etc/rc0.d/*xyz
 如何禁用运行控制脚本
通过在文件名开头加一个下划线(_) 来重命名运行控制脚本可以禁用该运行控制脚本。系统
不执行以下划线或点开头的文件。如果通过为文件添加后缀的方法来复制该文件,那么,
带后缀和不带后缀的文件都将运行。
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
2
3
4
示例15–15
1
使用运行控制脚本
322 系统管理指南:基本管理• 2006 年7 月
通过在新文件的开头添加下划线(_) 来重命名脚本。
# cd /etc/rcn.d
# mv filename _filename
检验脚本是否已重命名。
# ls _*
_filename
禁用运行控制脚本
以下示例显示如何重命名S99datainit 脚本。
# cd /etc/rc2.d
# mv S99datainit _S99datainit
# ls _*
_S99datainit
对服务管理工具进行疑难解答
 调试未启动的服务
在该过程中,打印服务处于禁用状态。
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
请求有关挂起服务的信息。
# svcs -xv
svc:/application/print/server:default (LP Print Service)
State: disabled since Wed 13 Oct 2004 02:20:37 PM PDT
Reason: Disabled by an administrator.
See:
2
3
示例15–16
1
2
对服务管理工具进行疑难解答
第15 章• 管理服务(任务) 323
See: man -M /usr/share/man -s 1M lpsched
Impact: 2 services are not running:
svc:/application/print/rfc1179:default
svc:/application/print/ipp-listener:default
-x 选项提供有关受到影响的服务实例的其他信息。
启用服务。
# svcadm enable application/print/server
 如何修复已损坏的系统信息库
以下过程显示如何将已损坏的系统信息库替换为缺省的系统信息库副本。系统信息库守护
进程svc.configd 在启动之后不会对配置系统信息库执行完整性检查。配置系统信息库存储
在/etc/svc/repository.db 中。配置系统信息库可能会由于以下某种原因而损坏:
 磁盘故障
 硬件错误
 软件错误
 无意中覆写文件
如果完整性检查失败,svc.configd 守护进程会向控制台写入一条以下类似的消息:
svc.configd: smf(5) database integrity check of:
/etc/svc/repository.db
failed. The database might be damaged or a media error might have
prevented it from being verified. Additional information useful to
your service provider is in:
/etc/svc/volatile/db_errors
3
对服务管理工具进行疑难解答
324 系统管理指南:基本管理• 2006 年7 月
The system will not be able to boot until you have restored a working
database. svc.startd(1M) will provide a sulogin(1M) prompt for recovery
purposes. The command:
/lib/svc/bin/restore_repository
can be run to restore a backup version of your repository. See
for more information.
随后,svc.startd 守护进程将退出,并启动sulogin,以便您进行维护。
在sulogin 提示符处输入root 密码。sulogin 使root 用户能够进入系统维护模式来修复系
统。
运行以下命令:
# /lib/svc/bin/restore_repository
运行此命令可指导您完成恢复未经损坏的备份所必需的步骤。SMF 会在系统的任何关键时
刻自动提取系统信息库的备份。有关更多信息,请参见第295 页中的“SMF 系统信息库备
份”。
在启动/lib/svc/bin/restore_repository 命令之后,会显示一条以下类似的消息:
Repository Restore utility
See for more information on the use of
this script to restore backup copies of the smf(5) repository.
If there are any problems which need human intervention, this script
will give instructions and then exit back to your shell.
Note that upon full completion of this script, the system will be
rebooted using reboot(1M), which will interrupt any active services.
1
2
对服务管理工具进行疑难解答
第15 章• 管理服务(任务) 325
如果要恢复的系统不是本地区域,则该脚本将说明如何使用读取和写入权限来重新挂载/
和/usr 文件系统,以便恢复数据库。该脚本会在列显这些说明之后退出。请按照这些说明
执行操作,同时应特别注意可能出现的任何错误。
在使用写入权限挂载了root (/) 文件系统之后,或者如果该系统是本地区域,则系统将提示
您选择要恢复的系统信息库备份:
The following backups of /etc/svc/repository.db exists, from
oldest to newest:
... list of backups ...
基于备份类型和备份时间来确定备份的名称。以boot 开头的备份在系统引导之后、第一次
更改系统信息库之前完成。以manifest_import 开头的备份在
svc:/system/manifest-import:default 完成其进程之后完成。备份时间以
YYYYMMDD_HHMMSS 格式提供。
输入相应的响应。
通常会选择最新的备份选项。
Please enter one of:
1) boot, for the most recent post-boot backup
2) manifest_import, for the most recent manifest_import backup.
3) a specific backup repository from the above list
4) -seed-, the initial starting repository. (All customizations
will be lost.)
5) -quit-, to cancel.
Enter response [boot]:
如果在未指定要恢复的备份的情况下按Enter 键,则会选择用[] 括起的缺省响应。选择
-quit- 会退出restore_repository 脚本并返回到shell 提示符。
注– 选择-seed- 会恢复seed 系统信息库。此系统信息库旨在用于初始安装和升级期间。如
非万不得已,请勿使用seed 系统信息库进行恢复。
3
对服务管理工具进行疑难解答
326 系统管理指南:基本管理• 2006 年7 月
在选择了要恢复的备份之后,系统将对其进行验证并检查其完整性。如有任何问题,
restore_repository 命令会列显错误消息并提示您进行其他选择。在选择了有效的备份之
后,系统会列显如下信息,并提示您进行最终确认。
After confirmation, the following steps will be taken:
svc.startd(1M) and svc.configd(1M) will be quiesced, if running.
/etc/svc/repository.db
-- renamed --> /etc/svc/repository.db_old_YYYYMMDD_HHMMSS
/etc/svc/volatile/db_errors
-- copied --> /etc/svc/repository.db_old_YYYYMMDD_HHMMSS_errors
repository_to_restore
-- copied --> /etc/svc/repository.db
and the system will be rebooted with reboot(1M).
Proceed [yes/no]?
键入yes 修复故障。
在restore_repository 命令执行了列出的所有操作之后,系统将重新引导。
 如何在引导过程中以交互方式启动服务
如果在启动服务时出现问题,有时系统会在引导过程中挂起。以下过程显示如何解决此问
题。
成为超级用户或承担包括Service Management 权限配置文件的角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC”。
在不启动任何里程碑的情况下引导。
此命令指示svc.startd 守护进程临时禁用所有的服务并在控制台上启动sulogin。
ok boot -m milestone=none
以root 身份登录系统。
4
1
2
3
对服务管理工具进行疑难解答

以上文章转自于 : http://developers.sun.com.cn/

阅读(1017) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~