在 Oracle® Solaris 11.2 中管理系统服务

退出打印视图

更新时间: 2014 年 7 月
 
 

启动服务

处于以下任何状态的服务实例都已启用,无需启动:degradedmaintenanceofflineonline。如果要启动的实例处于 degradedmaintenanceoffline 状态,请参见修复处于降级、脱机或维护状态的实例。如果要启动的实例处于 disabled 状态,则按照下面的过程启用该实例。启用实例时,该实例的重启程序会尝试将该实例转换为 online 状态。

如何启用服务实例

  1. 检查实例状态和相关项。

    检查实例当前是否已禁用以及其所有必要的相关项是否都在运行中(处于 onlinedegraded 状态)。

    $ svcs -l FMRI
  2. 启用实例。

    服务的重启程序会尝试将指定的实例转换为 online 状态。

    可以永久或临时启用实例。永久启用在系统重新引导后仍然有效,并且是缺省设置。临时启用仅会持续到重新引导之前。

    • 永久启用实例。
      $ svcadm enable FMRI
    • 临时启用实例。

      使用 -t 选项指定临时启用。

      $ svcadm enable -t FMRI

      如果希望现在运行实例,但是在下次重新引导后不再运行,请确保先禁用该实例,然后临时启用该实例。要验证实例是否为临时启用,请使用 svcs -l 命令并查看 enabled 行:

      enabled      true (temporary)
    • 同步启用实例。

      如果指定 -s 选项,则 svcadm 会启用实例并等待该实例进入 onlinedegraded 状态后才返回。svcadm 命令在实例进入联机状态或确定实例需要管理员干预才能进入联机状态后返回。

      -T 选项和 -s 选项一起使用,以指定完成转换或确定转换无法完成的上界(以秒为单位)。

      $ svcadm enable -sT 10 FMRI
  3. 验证实例是否处于联机状态。
    $ svcs FMRI

    如果实例处于 degradedmaintenanceoffline 状态,请参见修复处于降级、脱机或维护状态的实例

示例 3-1  永久启用服务实例

下面的命令显示 pkg/mirror:default 服务实例当前处于禁用状态,其所有必要的相关项都处于联机状态。

$ svcs -l pkg/mirror
fmri         svc:/application/pkg/mirror:default
name         IPS Repository Mirror
enabled      false
state        disabled
next_state   none
state_time   September 17, 2013 07:16:52 AM PDT
restarter    svc:/system/svc/restarter:default
manifest     /lib/svc/manifest/application/pkg/pkg-mirror.xml
dependency   require_all/error svc:/milestone/network:default (online)
dependency   require_all/none svc:/system/filesystem/local:default (online)
dependency   optional_all/error svc:/system/filesystem/autofs:default (online)
dependency   require_all/none svc:/application/pkg/repositories-setup (online)

下面的命令启用了 pkg/mirror:default 实例。在此示例中,svcadm 命令会返回,因为 pkg/mirror:default 实例已成功启用。

$ svcadm enable -sT 10 pkg/mirror:default
$ svcs pkg/mirror
STATE          STIME    FMRI
online         22:03:53 svc:/application/pkg/mirror:default
示例 3-2  临时启用服务实例

下面的命令显示 net-snmp:default 服务实例当前处于禁用状态,其所有必要的相关项都处于联机状态。禁用的一个相关项是可选相关项。

$ svcs -l net-snmp
fmri         svc:/application/management/net-snmp:default
name         net-snmp SNMP daemon
enabled      false
state        disabled
next_state   none
state_time   September 17, 2013 05:56:39 PM PDT
logfile      /var/svc/log/application-management-net-snmp:default.log
restarter    svc:/system/svc/restarter:default
contract_id
manifest     /etc/svc/profile/generic.xml
manifest     /lib/svc/manifest/application/management/net-snmp.xml
dependency   require_all/none svc:/system/filesystem/local (online)
dependency   optional_all/none svc:/milestone/name-services (online)
dependency   optional_all/none svc:/system/system-log (online)
dependency   optional_all/none svc:/network/rpc/rstat (disabled)
dependency   require_all/restart svc:/system/cryptosvc (online)
dependency   require_all/restart svc:/milestone/network (online)
dependency   require_all/refresh file://localhost/etc/net-snmp/snmp/snmpd.conf (online)
dependency   require_all/none svc:/milestone/multi-user (online)

按照下面示例中的过程使用 -t 选项启用实例后,该实例将临时启用、处于联机状态并且具有一个合同 ID,因为它已启动 snmpd 进程,如 svcs -p 命令所示。

$ svcadm enable -t net-snmp:default
$ svcs -l net-snmp
fmri         svc:/application/management/net-snmp:default
name         net-snmp SNMP daemon
enabled      true (temporary)
state        online
next_state   none
state_time   September 17, 2013 05:57:26 PM PDT
logfile      /var/svc/log/application-management-net-snmp:default.log
restarter    svc:/system/svc/restarter:default
contract_id  160
manifest     /etc/svc/profile/generic.xml
manifest     /lib/svc/manifest/application/management/net-snmp.xml
dependency   require_all/none svc:/system/filesystem/local (online)
dependency   optional_all/none svc:/milestone/name-services (online)
dependency   optional_all/none svc:/system/system-log (online)
dependency   optional_all/none svc:/network/rpc/rstat (disabled)
dependency   require_all/restart svc:/system/cryptosvc (online)
dependency   require_all/restart svc:/milestone/network (online)
dependency   require_all/refresh file://localhost/etc/net-snmp/snmp/snmpd.conf (online)
dependency   require_all/none svc:/milestone/multi-user (online)
$ svcs -p net-snmp
STATE          STIME    FMRI
online         17:57:26 svc:/application/management/net-snmp:default
               17:57:26     5022 snmpd