JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 管理:常见任务     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

关于本书

1.  查找有关 Oracle Solaris 命令的信息

2.  管理用户帐户和组(概述)

3.  管理用户帐户和组(任务)

4.  引导和关闭 Oracle Solaris 系统

5.  使用 Oracle Configuration Manager

6.  管理服务(概述)

SMF 简介

SMF 概念

SMF 服务

SMF 相关性

服务标识符

服务状态

SMF 清单

SMF 配置文件

服务配置系统信息库

SMF 系统信息库备份

SMF 快照

SMF 管理层

SMF 服务错误日志记录

SMF 管理接口和编程接口

SMF 命令行管理实用程序

服务管理配置库接口

SMF 组件

SMF 主重新启动器守护进程

SMF 委托的重新启动器

SMF 属性和属性组

管理服务配置系统信息库中的信息

查看 SMF 信息

修改 SMF 信息

删除 SMF 信息

SMF 和引导

SMF 兼容性

运行级别

何时使用运行级别或里程碑

确定系统的运行级别

/etc/inittab 文件

当系统能够在运行级别 3 下工作时出现的情况

7.  管理服务(任务)

8.  使用 Fault Manager

9.  管理系统信息(任务)

10.  管理系统进程(任务)

11.  监视系统性能(任务)

12.  管理软件包(任务)

13.  管理磁盘使用(任务)

14.  调度系统任务(任务)

15.  使用 CUPS 设置和管理打印机(任务)

16.  管理系统控制台、终端设备和电源服务(任务)

17.  管理系统故障转储信息(任务)

18.  管理核心文件(任务)

19.  系统和软件问题的故障排除(任务)

20.  其他系统和软件问题的故障排除(任务)

索引

SMF 概念

本节提供 SMF 框架中的术语及其定义。这些术语应用于整个文档。要理解 SMF 概念,必须先了解这些术语。

SMF 服务

SMF 框架中的基本管理单元是服务实例。每个 SMF 服务都有可能配置了多个版本。而且,同一版本的多个实例也可以在一个系统上运行。实例是指服务的特定配置。Web 服务器就是一种服务。配置为在端口 80 侦听的特定 Web 服务器守护进程就是一个实例。Web 服务器服务的每个实例都可以有不同的配置要求。服务具有系统范围的配置要求,但是,每个实例都可以根据需要覆盖特定的要求。单个服务的多个实例可作为服务对象的子对象进行管理。

服务不只表示长期运行的标准系统服务(如 in.dhcpdnfsd),服务还表示包括 ISV(独立软件开发商)应用程序在内的各种系统实体。此外,服务还可能表示不太传统的实体,如下所示:

通常,服务是一个向应用程序和其他服务(本地和远程)提供一系列功能的实体。服务依赖于隐式和显式声明的本地服务列表。

里程碑是一种特殊类型的服务。里程碑服务表示一种系统就绪情况级别。例如,在 SMF 中,运行级别由里程碑表示。此外,里程碑还可用于指示一组服务的就绪情况,例如 svc:/milestone/name-services:default 用于名称服务,svc:/milestone/config:default 用于 sysconfig 服务。

SMF 相关性

相关性定义服务之间的关系。这些关系允许只重新启动那些直接受故障影响的服务(而不是重新启动所有的服务),从而提供精确的故障隔离。相关性还提供可伸缩、可再现的初始化进程。最后,精确相关性的定义允许系统启动利用现代的、高度并行的计算机,因为所有相关服务都可以并行启动。

服务的重新启动行为是由每个相关项的 restart_on 属性定义的。可以将某个服务配置为在它所依赖的服务由于错误或其他原因停止或进行了刷新时停止。在由此停止了服务后,该服务将在它所依赖的服务启动后立即自动重新启动。例如,ssh 服务依赖于 network/ipfilter 服务。restart_on 属性设置为 error,表示 ssh 服务将在 network/ipfilter 服务因错误停止时停止,然后自动重新启动。如果遇到其他事件类型,ssh 服务将不会停止。

服务标识符

使用故障管理资源标识符 (Fault Management Resource Identifier, FMRI) 对每个服务实例进行命名。FMRI 包括服务名称和实例名称。例如,rlogin 服务的 FMRI 是 svc:/network/login:rlogin,其中 network/login 标识服务,rlogin 标识服务实例。

FMRI 的等效格式如下所示:

此外,很多 SMF 命令可以使用缩写的服务名或实例名,前提是不造成歧义。例如,可以直接使用 system-log 而不是更长的格式。有关选择适当 FMRI 格式的说明,请参见 SMF 命令手册页,例如 svcadm(1M)svcs(1)

服务名中包括前缀,用于帮助标识每个服务的用途。这些前缀包括的名称有 applicationdevicemilestonenetworksystem 等。site 前缀保留用于站点特定的定制,因此使用此前缀的服务不会在 Oracle Solaris 发行版中提供。

传统的 init.d 脚本也使用以 lrc(而不是 svc)开头的 FMRI 表示,例如 lrc:/etc/rc2_d/S47pppd。传统服务在系统引导期间的初始启动时间可以使用 svcs 命令显示。但是,不能使用 SMF 管理这些服务。

在初始系统部署期间,/etc/inetd.conf 中列出的服务将自动转换为 SMF 服务。这些服务的 FMRI 稍有不同。转换的 inetd 服务的语法如下:

network/service-name/protocol

另外,使用 RPC(远程过程调用)协议的已转换服务的语法如下所示:

network/rpc-service-name/rpc_protocol

其中,service-name 是在 /etc/inetd.conf 中定义的名称,protocol 是该服务的协议。inetconv 命令可用于在初始系统部署后转换 inetd.conf 条目。

服务状态

svcs 命令显示服务实例的状态、开始时间和 FMRI。每个服务的状态都为下列状态之一:

对于正在转换的实例,会向其状态末尾附加一个星号 "*"。如果状态缺失或无法识别,将显示一个问号 "?"。

SMF 清单

SMF 清单是 XML 文件,用于描述服务和一组实例。清单导入时会将该服务及其实例的属性装入到服务配置系统信息库中。有关 SMF 清单内容的完整说明,请参见 service_bundle(4) 手册页。

清单的首选位置为 /lib/svc/manifest。在引导过程中,svc:/system/early-manifest-import:default 服务将在任何服务启动之前导入和升级存储在该位置的清单。尽早运行导入过程,可以确保系统信息库包含服务启动之前的最新清单信息。在其他时间,您可以运行以下命令来导入这些清单的信息:svcadm restart manifest-import。为了实现兼容,/var/svc/manifest 仍保持可用,但只有运行 svc:/system/manifest-import:default 服务之后,才会导入或升级位于此位置的清单。

请勿对 Oracle 或第三方软件开发商提供的清单进行更改。请勿直接编辑 /lib/svc/manifest/var/svc/manifest 中的清单,因为任何定制信息都将在升级时丢失。可以创建站点配置文件来定制服务,或者使用 svccfginetadm 命令直接处理属性。/lib/svc/manifest/site/var/svc/manifest/site 目录也保留专供站点使用。Oracle Solaris 发行版不会在这些目录中提供清单。

在 Oracle Solaris 11 发行版中,可以使用多个清单描述单个服务。例如,此功能可用于在不修改服务现有清单的情况下,定义该服务的新实例。如果多个清单定义同一服务或实例的相同属性,则 SMF 无法确定要使用哪个值。如果检测到这种冲突,该实例将置于维护状态。

SMF 配置文件

SMF 配置文件是 XML 文件,允许对系统提供的服务和实例进行定制。配置文件可用于通过使用一个文件而不是一组脚本实现定制,或者在部署时或安装时定制配置。

可以使用配置文件对所有配置进行定制,包括为系统提供的服务添加实例。

本地定制必须放置在 /etc/svc/profile/site 目录中后缀为 .xml 的文件中。当系统引导或运行 svcadm restart manifest-import 命令时,将会应用该目录中的所有定制。

与清单一样,/etc/svc/profile/site 中文件之间的任何冲突定义均将被视为冲突,受影响的实例将置于维护状态。

系统配置文件还会在安装期间应用。很少需要对 /etc/svc/profile/generic.xml 中的系统配置文件进行更改。有关更多信息,请参见 smf_bootstrap(5)

有关使用配置文件的更多信息,请参见如何应用 SMF 配置文件

服务配置系统信息库

服务配置系统信息库存储服务的持久性配置信息以及 SMF 运行时数据。系统信息库在本地内存和本地文件之间分布。只能使用 SMF 界面对服务配置系统信息库进行处理和查询。有关处理和访问系统信息库的更多信息,请参见 svccfg(1M)svcprop(1) 手册页。svc.configd(1M) 手册页中对服务配置系统信息库守护进程进行了说明。libscf(3LIB) 手册页中对服务配置库进行了说明。

可以针对服务或实例定义系统信息库中的属性。对服务设置的属性由该服务的所有实例共享。对实例设置的属性仅由该实例使用,并且可以覆盖服务的属性。

svccfg 命令提供属性的原始视图,可以精确显示属性是针对服务还是实例设置的。如果您使用 svccfg 命令查看服务,将无法看到实例属性。如果您查看实例,则无法看到服务属性。svcprop 命令提供实例的组合视图,其中实例属性和服务属性组合到一个属性名称空间中。当启动了服务实例时,将会使用这些实例属性的组合视图。

可以使用 Oracle Solaris 审计框架记录所有 SMF 配置更改。有关更多信息,请参阅《Oracle Solaris 管理:安全服务》中的"配置审计服务(任务列表)"

SMF 系统信息库备份

SMF 自动对系统信息库执行下列备份操作:

系统将为上述两种类型各维护四个备份。系统会在必要时删除最旧的备份。备份存储为 /etc/svc/repository -type-YYYYMMDD_HHMMSWS,其中 YYYYMMDD(年、月和日)和 HHMMSS(小时、分钟和秒)是执行备份的日期和时间。请注意,小时格式基于 24 小时制。

在发生错误时,可以从这些备份中恢复系统信息库。为此,可使用 /lib/svc/bin/restore_repository 命令。有关更多信息,请参见如何修复已损坏的系统信息库

SMF 快照

服务配置系统信息库中的数据包括快照以及可编辑的配置。每个服务实例的相关数据都存储在快照中。标准快照如下所示:

始终使用 running 快照执行 SMF 服务。如果此快照不存在,系统将自动创建。

svccfg 命令用于更改当前属性值。当运行 svcadm 命令以将这些值集成到运行中快照时,这些值将对服务可见。svccfg 命令还可用于查看或恢复至其他快照中的实例配置。

SMF 管理层

在 Oracle Solaris 11 发行版中,记录属性、属性组、实例和服务源的信息已经添加到服务配置系统信息库中。通过此信息,用户可以确定哪些数据是管理定制数据,哪些数据是随软件一起提供的数据。

为了帮助识别实体的源,定义了以下层:

为了保持与希望每个属性名只对应一个属性的现有客户机的兼容性,以及为了创建覆盖策略,分层机制包含简单的覆盖行为。admin 层优先级最高。如果某个属性在 admin 层中有值,则服务将使用该值。否则,服务将依次检查 site-profile 层、system-profile 层和 manifest 层。此行为允许本地定制优先于安装系统时提供的值。

这些层由系统自动管理。管理员对系统信息库直接进行的更改仅显示在 admin 层中。对其他层的更改只能通过在标准位置放置或删除文件进行。由于文件内容而将某个属性放置到系统信息库中时,有关该属性的信息包括内容来源文件的名称。

管理员不能使用 svccfglibscf 调用来直接修改较低的层。使用 svccfg deletesvccfg delpgsvccfg delprop 命令时,实体将被屏蔽而不是完全删除。通常,用户看不到已删除的实体,但是可使用 svccfg listcust 命令显式浏览屏蔽的实体,并可在需要时使用 svccfg delcust 命令取消屏蔽实体。

svccfg listprop 命令具有允许浏览这些层的选项。例如,svccfg listprop -l all 可显示所有层以及每个层中的值。此外,svccfg listcust 命令还可用于仅列出定制信息。

SMF 服务错误日志记录

特定于服务的信息,包括服务或其方法发出的错误以及有关启用操作、启动时间等的信息,记录在 /var/svc/log 内每个服务实例的各个文件中。要确定服务的日志文件名称,请运行 svcs -x service 命令。

缺省情况下,SMF 仅在需要进行管理干预时(例如,如果服务进入维护状态),才会将日志消息写入 syslog 程序和控制台中。提供了其他选项,但很少使用。有关其他可能的配置,请参见 svc.startd(1M) 手册页。

此外,为了进行错误日志记录,可以将 SMF 服务配置为在发生 FMA 事件或服务进入或退出某个服务状态时,向您发出通知。这些通知可以使用简单网络管理协议 (Simple Network Management Protocol, SNMP) 或简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP)。有关设置 SMF 通知的信息,请参见如何设置 SMF 转换事件的电子邮件通知