JavaScript is required to for searching.
跳过导航链接
退出打印视图
在 Oracle Solaris 11.1 中管理服务和故障     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  管理服务(概述)

2.  管理服务(任务)

监视 SMF 服务

监视服务(任务列表)

如何列出服务的状态

如何列出服务的定制信息

如何显示依赖某个服务实例的服务

如何显示某个服务所依赖的服务

如何设置 SMF 转换事件的通知

管理 SMF 服务

管理 SMF 服务(任务列表)

对于 SMF 使用 RBAC 权限配置文件

如何创建 SMF 服务

如何禁用服务实例

如何启用服务实例

如何重新启动服务

如何恢复处于维护状态的服务

如何创建 SMF 配置文件

如何手动创建 SMF 配置文件

如何应用 SMF 配置文件

配置 SMF 服务

配置 SMF 服务(任务列表)

如何修改 SMF 服务属性

如何修改一个服务的多个属性

如何修改文件配置的服务

如何更改服务的环境变量

如何更改由 inetd 控制的服务的属性

如何删除服务的定制信息

如何修改由 inetd 控制的服务的命令行参数

如何转换 inetd.conf

使用运行控制脚本

使用运行控制脚本(任务列表)

如何使用运行控制脚本来停止或启动传统服务

如何添加运行控制脚本

如何禁用运行控制脚本

如何将运行控制脚本转换为 SMF 服务

对服务管理工具进行故障排除

SMF 故障排除(任务列表)

如何调试未启动的服务

如何修复已损坏的系统信息库

如何在不启动任何服务的情况下引导

如何以详细模式进行引导

system/filesystem/local:default 服务在系统引导期间失败时,如何强制出现 sulogin 提示符

3.  使用 Fault Manager

索引

监视 SMF 服务

下列任务显示如何监视 SMF 服务。

监视服务(任务列表)

以下任务列表说明了监视 SMF 服务所需的过程。

任务
说明
参考
显示服务实例的状态。
显示所有正在运行的服务实例的状态。
显示对服务的定制。
显示服务的 admin 层中的定制信息。
显示服务依赖项。
显示依赖指定服务的服务。
显示服务的依赖性。
显示指定服务所依赖的服务。此信息可用来帮助确定阻止服务启动的因素。
为重大事件配置通知。
使用 SNMP 或 SMTP 发送服务状态更改通知或 FMA 事件通知。

如何列出服务的状态

以下过程可用来显示哪些服务正在运行。

示例 2-1 显示 sendmail 服务的状态

以下示例显示包括依赖性的服务的状态。而且,使用了 -p 选项,以便显示有关进程 ID、启动时间和命令运行的信息。

$ svcs -lp network/smtp:sendmail
fmri         svc:/network/smtp:sendmail
name         sendmail SMTP mail transfer agent
enabled      true
state        online
next_state   none
state_time   Tue Aug 09 19:25:54 2011
logfile      /var/svc/log/network-smtp:sendmail.log
restarter    svc:/system/svc/restarter:default
contract_id  114
manifest     /etc/svc/profile/generic_limited_net.xml
manifest     /lib/svc/manifest/network/smtp-sendmail.xml
dependency   require_all/refresh file://localhost/etc/mail/sendmail.cf (online)
dependency   require_all/refresh file://localhost/etc/nsswitch.conf (online)
dependency   optional_all/none svc:/system/filesystem/autofs (online)
dependency   require_all/none svc:/system/filesystem/local (online)
dependency   require_all/none svc:/network/service (online)
dependency   require_all/refresh svc:/milestone/name-services (online)
dependency   optional_all/refresh svc:/system/identity:domain (online)
dependency   optional_all/none svc:/system/system-log (online)
process      101077 /usr/lib/sendmail -bd -q15m

示例 2-2 显示所有服务的状态

以下命令列出系统上安装的所有服务以及每个服务的状态。该命令既显示已禁用的服务又显示已启用的服务。

$ svcs -a

示例 2-3 显示所有通知参数

以下命令列出了所有 FMA 事件通知参数以及 SMF 状态转换参数。

$ svcs -n

示例 2-4 显示由 inetd 控制的服务的状态

以下命令列出由 inetd 控制的服务,其中包括每个服务的 FMRI、运行状态以及服务是处于启用还是禁用状态。

$ inetadm

如何列出服务的定制信息

如何显示依赖某个服务实例的服务

以下过程显示如何确定依赖指定服务的服务实例。

示例 2-5 显示依赖 multiuser 里程碑的服务实例

以下示例显示如何确定依赖 multiuser 里程碑的服务实例。

$ svcs -D milestone/multi-user
STATE          STIME    FMRI
disabled       Aug_09   svc:/application/time-slider:default
disabled       Aug_09   svc:/application/management/net-snmp:default
online         Aug_09   svc:/system/intrd:default
online         Aug_09   svc:/system/boot-config:default
online         Aug_09   svc:/milestone/multi-user-server:default

如何显示某个服务所依赖的服务

以下过程显示如何确定指定的服务实例所依赖的服务。

示例 2-6 显示 multiuser 里程碑依赖的服务实例

以下示例显示 multiuser 里程碑依赖的服务实例:

$ svcs -d milestone/multi-user:default
STATE          STIME    FMRI
disabled       Aug_09   svc:/network/nfs/client:default
disabled       Aug_09   svc:/network/smb/client:default
disabled       Aug_09   svc:/system/mdmonitor:default
disabled       Aug_09   svc:/application/print/server:default
online         Aug_09   svc:/system/resource-controls:default
online         Aug_09   svc:/system/metasync:default
online         Aug_09   svc:/system/rmtmpfiles:default
online         Aug_09   svc:/system/utmp:default
online         Aug_09   svc:/system/name-service/cache:default
online         Aug_09   svc:/system/device/audio:default
online         Aug_09   svc:/network/rpc/bind:default
online         Aug_09   svc:/milestone/name-services:default
online         Aug_09   svc:/network/iscsi/initiator:default
online         Aug_09   svc:/milestone/single-user:default
online         Aug_09   svc:/system/filesystem/local:default
online         Aug_09   svc:/network/inetd:default
online         Aug_09   svc:/system/cron:default
online         Aug_09   svc:/system/filesystem/autofs:default
online         Aug_09   svc:/system/filesystem/ufs/quota:default
online         Aug_09   svc:/system/power:default
online         Aug_09   svc:/system/system-log:default
online         Aug_09   svc:/system/system-log:default
online         Aug_09   svc:/system/auditd:default
online         Aug_09   svc:/network/smtp:sendmail

如何设置 SMF 转换事件的通知

此过程会使系统在每次某个服务或选定服务的状态发生更改时,生成一个电子邮件通知。您可以选择使用 SMTP 或 SNMP。通常,仅应在由于其他某个原因配置了 SNMP 时选择 SNMP。

缺省情况下,在发生维护状态转换时发送 SNMP 陷阱。如果使用 SNMP 进行监视,可以为其他状态转换配置额外陷阱。

  1. 成为管理员,或承担拥有 Service Management (服务管理)权限配置文件的角色。

    有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 设置通知参数。

    以下示例说明如何为 SMF 和 FMA 事件设置通知参数,以及如何列出和删除通知参数。

示例 2-7 为所有 SMF 服务状态事件配置通知

以下命令创建一个通知,当服务进入 maintenance 状态时即发送电子邮件通知。

# /usr/sbin/svccfg setnotify -g maintenance mailto:sysadmins@example.com

您也可以选择以 from 选项列出的状态开始并以 to 选项列出的状态结束的服务。此选项的有效 SMF 状态为:degradedmaintenanceofflineonline。可以使用 -g all 选项为所有状态转换事件生成电子邮件通知。有关更多信息,请参见 smf(5) 手册页中的“通知参数”部分。

示例 2-8 为单个服务配置通知

以下命令创建一个通知,当 switch 服务进入 online 状态时,该通知将发送电子邮件。

# /usr/sbin/svccfg -s svc:/system/name-service/switch:default setnotify to-online \
      mailto: sysadmins@example.com

示例 2-9 为 FMA 事件配置通知

以下命令创建一个通知,当修复了 FMA 问题时,该通知将发送 SNMP 邮件。

# /usr/sbin/svccfg setnotify problem-repaired snmp: 

FMA 事件类包括 problem-diagnosedproblem-updatedproblem-repairedproblem-resolved。有关更多信息,请参见 smf(5) 手册页中的“通知参数”部分。

示例 2-10 列出通知设置

以下命令显示 FMA 服务诊断的新问题的通知设置。可以通过在 listnotify 命令中包括服务状态而不是事件类,或者不包括任何参数,显示 SMF 服务状态转换事件的通知设置。

# /usr/sbin/svccfg listnotify problem-diagnosed

示例 2-11 删除通知设置

以下命令可删除与 switch 服务转换到 online 服务状态相关的通知设置。您可以使用 FMA 事件类取代服务状态。

# /usr/sbin/svccfg -s svc:/system/name-service/switch:default delnotify to-online