Go to main content

手册页部分 1:用户命令

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

svcs(1)

名称

svcs - 报告服务状态

用法概要

svcs [-aHpv?] [-o 
col[,col...]] [-R 
FMRI-instance]... 
     [-sS col]... [FMRI
 | pattern]...
svcs -d | -D [
-Hpv?] [-o col[,
col...]] [-sS col]... 
     [FMRI | pattern] ...
svcs -L [-v] [
FMRI]...
svcs -l [-v] [
FMRI | pattern]...
svcs -n [FMRI] ...
svcs -x [-v] [
-L] [FMRI]... 

描述

svcs 命令显示有关服务配置系统信息库中记录的服务实例的信息。

svcs [-aHpv?] 命令形式输出由参数指定的服务实例的单行状态列表。每个实例只列出一次。如果不指定任何参数,则会列出所有已启用的服务实例(即使被临时禁用),这些服务实例将包含以下各列。

svcs -d | -D 命令形式输出由参数指定的服务实例的依赖性或依赖项的单行状态列表。

svcs -L 命令形式输出日志内容。有关更多信息,请参见下面的“选项”。

svcs -l 命令形式输出有关特定服务和实例的详细信息。

svcs -n 命令形式输出通知参数。有关更多信息,请参见下面的“选项”。

svcs -x 命令形式说明服务实例的状态。每个参数都对应一组可读的文本,用于说明服务的状态以及服务处于这种状态的原因。如果不指定任何参数,将描述有问题的服务。

标准错误流将列显错误消息。

该命令的输出可适当用作 svcadm(8) 命令的输入。

选项

支持以下选项:

–?

显示一条扩展的用法消息,包含列说明符。

–a

显示所有服务,包括禁用的以及不完整的服务。可以使用 svcs —x<service> 进一步说明不完整的服务。

如果选定多个服务,则该选项无效。

–d

显示指定的服务实例所依赖的服务或服务实例。

–D

显示依赖于指定的服务或服务实例的服务实例。

–H

省略列标题。

–L

列显选定服务实例的服务重启程序创建的日志文件的路径。

使用 –x 时,要么从正常退出、没有错误的方法的最后一条日志消息之后开始输出日志文件内容,要么输出日志文件的最后 10 行(取两者中距离该服务实例说明的末尾最近的那一个)。如果正常退出、没有错误的方法的日志消息位于日志文件的最后一行,则输出日志文件的最后 5 行。

使用 –v 时,如果只有一个服务实例匹配输入,则输出日志文件的内容。如果有多个服务实例与输入匹配,则输出每个服务实例的日志文件的最后 10 行。

–l

(字母 ell。)显示有关选定的服务和服务实例的所有可用信息。每行显示一个服务属性。不同实例的信息由空行隔开。

以下的特定属性需要进行详细说明:

dependency

有关依赖项的信息。首先显示分组与 restart_on 属性,并用正斜杠 (/) 隔开。然后列出每个实体及其状态。有关状态的信息,请参见 smf(7)。除了标准状态,每个服务依赖项还可以具有以下状态说明:

absent

系统中未定义此类服务。

invalid

故障管理资源标识符 (Fault Management Resource Identifier, FMRI) 无效。请参见 smf (7)

multiple

该实体是一个有多个实例的服务。

文件依赖项只能具有以下状态说明之一:

absent

系统中不存在此类文件。

online(联机)

该文件存在。

如果该文件在 svc.startd 上次评估服务的依赖项时不存在,该命令可能会认为依赖项不符合条件。svcadm refresh 将强制重新评估依赖项。

unknown(未知)

stat(2) 由于 ENOENT 之外的原因失败。

有关依赖项、分组以及 restart_on 值的其他详细信息,请参见 smf(7)

enabled(已启用)

是否启用服务,以及是临时启用还是禁用服务(直到系统下一次重新引导)。前者指定为 truefalse,后者根据是否存在 (temporary) 的情况进行指定。

服务可能会因管理员运行 svcadm disable -t、使用 svcadm milestone 或将系统引导到特定里程碑而被临时禁用。有关详细信息,请参见 svcadm(8)

–n

输出通知参数。请参见 smf(7)。无论选定的 FMRI 或模式如何,该选项都会列显 FMA 事件通知参数以及系统范围内的 SMF 状态转换通知参数。

–o col[, col]...

列显特定的列。每个 col 应为一个列名。有关可用列,请参见下文的

–p

列出每个服务实例关联的进程。服务实例也可能没有关联的进程。将显示每个进程的进程 ID、开始时间以及命令名称(对应 ps(1) 命令中的 PID、STIME 以及 CMD 字段)。

–R FMRI-instance

选择将给定的服务实例作为其重启程序的服务实例。

–s col

将输出按列排序。col 应为一个列名。有关可用列,请参见下文的。多个 –s 选项的行为是累积的。

–S col

–s 选项一样按 col 的相反顺序排序。

–v

如果不指定 –x–l 选项,则显示详细的列:STATENSTATESTIME CTIDFMRI

如果指定了 –x 选项,则显示每列说明的附加信息。

如果指定了 –l 选项,则显示应用程序类型的属性组中用户可见的属性及其说明。

–x

显示对服务状态的说明。

如果不带参数,–x 选项将对以下服务的状态进行说明:

  • 已经启用但未运行。

  • 阻止其他已经启用的服务运行。

  • 处于降级状态。

操作数

支持下列操作数:

FMRI

故障管理资源标识符 (Fault Management Resource Identifier, FMRI),用于指定一个或多个实例(请参见 smf(7))。可以通过指定实例名称或服务名称的结尾部分使用 FMRI 的缩写形式。例如,以下给定的 FMRI:

svc:/network/smtp:sendmail

以下是有效的缩写形式:

sendmail
:sendmail
smtp
smtp:sendmail
network/smtp

以下是无效的缩写形式:

mail
network
network/smt

如果 FMRI 指定了一个服务,则该命令适用于此服务的所有实例,但与 –D 选项结合使用除外。

FMRI 的缩写形式不稳定,不应在脚本或其他永久性工具中使用。

pattern

一种模式,根据 fnmatch(7) 中描述的“通配”规则,与服务实例的 FMRI 匹配。如果模式不以 svc: 开头且不是 glob 模式,则在前面附加 svc:/。如果模式是 glob 模式,则不经修改地用于匹配。

以下是一个典型的通配模式示例:

qexample% svcs \*keyserv\*
STATE          STIME     FMRI
disabled       Aug_02    svc:/network/rpc/keyserv:default

请注意,如果更改模式以删除前导 glob,则会导致行为不同:

qexample% svcs keyserv\*
svcs: Pattern 'svc:/keyserv:*' doesn't match any instances
STATE          STIME    FMRI
FMRI-instance

用于指定实例的 FMRI。

列名不区分大小写。缺省的输出格式等效于 "–o state,stime,fmri"。缺省的排序列为 STATESTIME 以及 FMRI

CTID

服务实例的主合同 ID。并不是所有的服务实例都有有效的主合同 ID。

DESC

根据服务的模板元素对服务进行简单介绍。服务可能没有可用的说明,在这种情况下将使用连字符 (-) 表示空值。

FMRI

服务实例的 FMRI

INST

服务实例的实例名称。

NSTA

服务实例下一状态的缩写,如 STA 列中的说明所示。连字符表示实例没有在转换。其他方面与 STA 相同。

NSTATE

服务的下一状态。连字符用于表示实例没有在转换。其他方面与 STATE 相同。

SCOPE

服务实例的作用域名称。

SVC

服务实例的服务名称。

STA

服务实例状态的缩写(请参见 smf(7)):

DGD

降级

DIS

禁用

LRC

传统的 rc*.d 脚本启动式实例

MNT

maintenance

OFF

脱机

ON

联机

UN

未初始化

不存在的状态或无法识别的状态用问号 (?) 字符表示。除非同时显示了 NSTANSTATE 列,否则正在转换的实例后面将附加一个星号 (*)。

有关服务状态的说明,请参见 smf(7)

STATE

服务实例的状态。除非同时显示了 NSTANSTATE 列,否则正在转换的实例后面将附加一个星号。

有关服务状态的说明,请参见 smf(7)

STIME

如果服务实例在过去 24 小时内进入了当前状态,该列将显示服务实例进入当前状态的时间。否则,该列会显示服务实例进入当前状态的日期,并在空白的位置列显下划线 (_)。

ASTATE

服务实例的辅助状态(如果适用)。没有辅助状态的服务实例将在此列中显示一个 '-' 符号。

LRUN

定期服务实例上次运行的时间。不是定期且上次未执行的服务实例会在此列中显示一个 '-' 字符。

有关定期服务的说明,请参见 svc.periodicd(8)

NRUN

定期服务实例下次预定运行的时间。不是定期并因此下次预定运行的服务实例会在此列中显示一个 '-' 字符。

有关定期服务的说明,请参见 svc.periodicd(8)

示例

示例 1 显示缺省输出

以下示例显示缺省输出:

example% svcs
STATE          STIME    FMRI
...
legacy_run     13:25:04 lrc:/etc/rc3_d/S42myscript
...
online         13:21:50 svc:/system/svc/restarter:default
...
online         13:25:03 svc:/milestone/multi-user:default
...
online         13:25:07 svc:/milestone/multi-user-server:default
...
示例 2 列出所有的本地实例

以下示例列出 service1 服务的所有本地实例。

example% svcs -o state,nstate,fmri service1
STATE        NSTATE        FMRI
online       -             svc:/service1:instance1
disabled     -             svc:/service1:instance2
示例 3 列出详细信息

以下示例列出详细信息。

example% svcs -v network/rpc/rstat:udp
STATE          NSTATE        STIME    CTID   FMRI
online         -             Aug_09        - svc:/network/rpc/rstat:udp
示例 4 列出详细信息

以下示例列出有关 system/service3 的所有实例的详细信息。可以根据管理的重启程序相应显示其他字段。

example% svcs -l network/rpc/rstat:udp

fmri         svc:/network/rpc/rstat:udp
enabled      true
state        online
next_state   none
restarter    svc:/network/inetd:default
contract_id
dependency   require_all/error svc:/network/rpc/bind (online)
示例 5 列出进程
example% svcs -p sendmail
STATE          STIME    FMRI
online         13:25:13 svc:/network/smtp:sendmail
               13:25:15   100939 sendmail
13:25:15   100940 sendmail  
示例 6 使用 svcs –x 说明服务状态

(a) 在以下示例中,svcs –x 标识了被禁用的 print/server 服务是两个已启用但尚未联机的服务的根源。svcs – xv 显示这两个服务是 print/rfc1179print/ipp-listener。这种情况可通过启用 print/server 或禁用 rfc1179ipp-listener 进行纠正。

example% svcs -x
svc:/application/print/server:default (LP print server)
 State: disabled since Mon Feb 13 17:56:21 2006
Reason: Disabled by an administrator.
   See: http://support.oracle.com/msg/SMF-8000-05
   See: lpsched(8)
Impact: 2 dependent services are not running. (Use -v for list.)

(b) 在以下示例中,NFS(远程文件系统)并未运行:

example$ svcs nfs/client
STATE          STIME    FMRI
offline        16:03:23 svc:/network/nfs/client:default

(c) 以下示例表明问题在于 nfs/status nfs/client 正处于等待状态,因为其依赖于 nfs/nlockmgr,而后者依赖于 nfs/status

example$ svcs -xv nfs/client
svc:/network/nfs/client:default (NFS client)
 State: offline since Mon Feb 27 16:03:23 2006
Reason: Service svc:/network/nfs/status:default
        is not running because a method failed repeatedly.
   See: http://support.oracle.com/msg/SMF-8000-GE
  Path: svc:/network/nfs/client:default
          svc:/network/nfs/nlockmgr:default
            svc:/network/nfs/status:default
   See: man -M /usr/share/man -s 8 mount_nfs
   See: /var/svc/log/network-nfs-client:default.log
Impact: This service is not running.

退出状态

将返回以下退出值:

0

命令调用成功。

1

致命错误。

2

指定的命令行选项无效。

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
system/core-os
接口稳定性
请参见下文。

屏幕输出为 Uncommitted(未确定)。调用为 Committed(已确定)。

另请参见

ps(1)svcprop(1)stat(2)libscf(3LIB)attributes(7)fnmatch(7)smf(7)svc.periodicd(8)svc.startd(8)svcadm(8)svccfg(8)