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

退出打印视图

更新时间: 2014 年 7 月
 
 

SMF 最佳做法和故障排除

本附录提供了一些建议的最佳做法,并说明了如何针对一些 SMF 服务问题进行故障排除。

SMF 最佳做法

大多数服务都有配置策略说明。如果未实现您需要的配置,请通过修改服务来修改策略说明。修改服务属性值或使用不同属性值创建新的服务实例。请勿禁用服务实例和编辑本应由 SMF 服务管理的配置文件。

请勿修改 Oracle 或第三方软件供应商提供的清单和系统配置文件。这些清单和配置文件在您升级系统时可能会被替换,您对这些文件所做的更改会丢失。可以创建站点配置文件来定制服务,或者使用 svccfg 命令或 inetadm 命令直接处理属性。/lib/svc/manifest/site/var/svc/manifest/site 目录也已保留以专供站点使用。Oracle Solaris 不会在这些目录中提供清单。

要对多个系统应用相同的定制配置,请使用 svcbundle 命令或 svccfg extract 命令创建一个配置文件。在该文件中定制属性值,并提供注释来说明每项定制的原因。将该文件复制到每个系统的 /etc/svc/profile/site 中,然后在每个系统上重新启动 manifest-import 服务。请参见配置多个系统

当您创建站点配置文件时,请确保对于相同的服务或服务实例,定义的配置不会与其他站点配置文件中定义的配置冲突。当 SMF 发现服务配置系统信息库的同一层中存在冲突的配置时,会将受影响的服务实例置于维护状态。

请勿对清单和配置文件使用非标准位置。有关清单和配置文件的标准位置,请参见服务包

当您创建供自己使用的服务时,请在服务名称的开头使用 site,如下所示:svc:/site/service_name:instance_name

除根据指定启动消息量中所述配置日志记录级别外,请勿修改主重启程序服务 svc:/system/svc/restarter:default 的配置。

在您使用 svccfg delcust 命令之前,请使用具有相同选项的 svccfg listcust 命令。delcust 子命令可能会删除服务上的所有管理定制。使用 listcust 子命令可以验证 delcust 子命令将会删除哪些定制信息。

在脚本中,请使用完整的服务实例 FMRI:svc:/service_name:instance_name

对服务问题进行故障排除

本节讨论以下主题:

  • 将配置更改提交至运行中的快照

  • 修复报告存在问题的服务

  • 手动将实例转换为 degradedmaintenance 状态

  • 修复损坏的服务配置系统信息库

  • 配置系统启动时显示或存储的消息量

  • 转换或引导至指定的里程碑

  • 使用 SMF 检查引导问题

  • inetd 服务转换为 SMF 服务

了解配置更改

在服务配置系统信息库中,SMF 将属性更改与运行中快照内的属性分开存储。当您更改服务配置时,更改内容不会立即显示在运行中的快照内。

刷新操作会使用编辑中配置的值更新指定服务实例的运行中快照。

缺省情况下,svcprop 命令显示运行中快照内的属性,而 svccfg 命令显示编辑中配置内的属性。如果更改了属性值,但未执行配置刷新,则 svcpropsvccfg 命令会显示不同的属性值。执行配置刷新后,svcpropsvccfg 命令会显示相同的属性值。

重新引导不会更改运行中的快照。svcadm restart 命令不会刷新配置。使用 svcadm refreshsvccfg refresh 命令将配置更改提交至运行中的快照。

修复处于降级、脱机或维护状态的实例

使用不带任何参数的 svcs -x 命令显示与以下任一说明匹配的所有服务实例的说明性信息:

  • 服务已启用,但是未运行。

  • 服务正在阻止其他启用的服务运行。

下面的列表汇总了解决服务问题的方法:

  1. 从查看服务日志文件开始来诊断问题。

  2. 解决问题。如果解决问题涉及修改服务配置,请刷新服务。

  3. 将受影响的服务改为运行中状态。

如何修复处于维护状态的实例

处于维护状态的服务实例已启用,但是无法运行。

  1. 确定实例处于维护状态的原因。

    实例可能由于管理操作尚未完成而刚好转换至 maintenance 状态。如果实例正在转换,则其状态应该显示为 maintenance*

    在下面的示例中,"State" 和 "Reason" 行显示 pkg/depot 服务处于 maintenance 状态是因为其 start 方法失败。

    $ svcs -x
    svc:/application/pkg/depot:default (IPS Depot)
     State: maintenance since September 11, 2013 01:30:42 PM PDT
    Reason: Start method exited with $SMF_EXIT_ERR_FATAL.
       See: http://support.oracle.com/msg/SMF-8000-KS
       See: pkg.depot-config(1M)
       See: /var/svc/log/application-pkg-depot:default.log
    Impact: This service is not running.

    登录 Oracle 支持站点以查看引用的“预测性自我修复”知识文章。在此示例中,该文章讲述了如何查看日志文件确定 start 方法失败的原因。svcs 输出提供了日志文件的名称。有关如何查看日志文件的信息,请参见查看服务日志文件。在此示例中,日志文件显示了 start 方法调用和致命错误消息。

    [ Sep 11 13:30:42 Executing start method ("/lib/svc/method/svc-pkg-depot start"). ]
    pkg.depot-config: Unable to get publisher information: 
    The path '/export/ipsrepos/Solaris11' does not contain a valid package repository.
  2. 解决问题。

    可能需要执行以下一个或多个步骤。

    • 更新服务配置。

      如果解决报告的问题需要修改服务配置,则对配置发生更改的服务使用 svccfg refreshsvcadm refresh 命令。通过使用 svcprop 命令查看属性值或通过特定于此服务的其他测试验证运行中快照内的配置是否得到更新。

    • 确保相关项正在运行。

      有时,svcs -x 输出中的 "Impact" 行告知您有些服务与该处于 maintenance 状态的服务存在依赖关系,但是这些服务未运行。使用 svcs -l 命令检查相关服务的当前状态。确保所有必需的相关项都在运行。使用 svcs -x 命令验证所有启用的服务是否都在运行。

    • 确保合同进程已停止。

      如果处于 maintenance 状态的服务是合同服务,请确定是否停止了该服务启动的任何进程。当合同服务实例处于维护状态时,则合同 ID 应该为空(如下面的示例所示),并且与该合同关联的所有进程应该都已停止。使用 svcs -lsvcs -o ctid 确认处于维护状态的服务实例不存在任何合同。使用 svcs -p 检查与此服务实例关联的所有进程是否仍然都在运行。svcs -p 显示的服务实例处于维护状态的所有进程都应该被终止。

      $ svcs -l system-repository
      fmri         svc:/application/pkg/system-repository:default
      name         IPS System Repository
      enabled      true
      state        maintenance
      next_state   none
      state_time   September 17, 2013 07:18:19 AM PDT
      logfile      /var/svc/log/application-pkg-system-repository:default.log
      restarter    svc:/system/svc/restarter:default
      contract_id
      manifest     /lib/svc/manifest/application/pkg/pkg-system-repository.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)
  3. 通知重启程序实例已修复。

    当报告的问题得到解决后,请使用 svcadm clear 命令将服务恢复 online 状态。对于处于 maintenance 状态的服务,clear 子命令会告知该服务的重启程序服务已修复。

    $ svcadm clear pkg/depot:default

    如果指定 -s 选项,则 svcadm 命令等待实例进入 online 状态或确定在无管理员干预的情况下实例无法进入 online 状态后返回。将 -T 选项和 -s 选项一起使用,以指定完成转换或确定转换无法完成的上界(以秒为单位)。

  4. 验证实例是否已修复。

    使用 svcs 命令验证处于维护状态的服务现在是否已处于联机状态。使用 svcs -x 命令验证所有启用的服务是否都在运行。

如何修复处于脱机状态的实例

处于脱机状态的服务实例已启用,但是未运行或不可运行。

  1. 确定实例处于脱机状态的原因。

    实例可能由于尚未满足其相关项而刚好转换至 offline 状态。如果实例正在转换,则其状态应该显示为 offline*

  2. 解决问题。
    • 启用服务相关项。

      如果禁用了所需的依赖性,请使用以下命令启用它们:

      $ svcadm enable -r FMRI
    • 修复相关项文件。

      相关项文件可能缺失或者无法读取。您可能需要使用 pkg fixpkg revert 解决此类型的问题。请参见 pkg(1) 手册页。

  3. 根据需要重新启动实例。

    如果实例因不满足必需的相关项而处于脱机状态,则修复或启用相关项可以使脱机实例重新启动并回到联机状态,并且不需要任何进一步的管理操作。

    如果您对服务进行了一些其他修复,则重新启动实例。

    $ svcadm restart FMRI
  4. 验证实例是否已修复。

    使用 svcs 命令验证处于脱机状态的实例现在是否已处于联机状态。使用 svcs -x 命令验证所有启用的服务是否都在运行。

如何修复处于降级状态的实例

处于降级状态的服务实例已启用并且正在运行或者可以运行,但是以有限的功能运行。

  1. 确定实例处于降级状态的原因。
  2. 解决问题。
  3. 请求重启程序让实例回到联机状态。

    当报告的问题得到解决后,使用 svcadm clear 命令将实例恢复 online 状态。对于处于 degraded 状态的实例,clear 子命令会请求该实例的重启程序将该实例转换为 online 状态。

    $ svcadm clear pkg/depot:default
  4. 验证实例是否已修复。

    使用 svcs 命令验证处于降级状态的实例现在是否处于联机状态。使用 svcs -x 命令验证所有启用的服务是否都在运行。

将实例标为降级或维护状态

您可以将服务实例标为 degraded 状态或 maintenance 状态。例如,当应用程序进入死循环或者出现死锁的情况下,您可能希望这么做。有关状态更改的信息会传播至标记实例的相关项,这样有助于调试其他相关的实例。

指定 -I 选项可以请求立即执行状态更改。

当您将实例标为 maintenance 时,可以指定 -t 选项以请求执行临时状态更改。临时请求仅持续到下一次重新引导。

如果为 svcadm mark 命令指定 -s 选项,则 svcadm 标记实例并等待该实例进入 degradedmaintenance 状态后才返回。将 -T 选项和 -s 选项一起使用,以指定完成转换或确定转换无法完成的上界(以秒为单位)。

诊断并修复系统信息库问题

系统启动时,系统信息库守护进程 svc.configd 针对 /etc/svc/repository.db 中存储的配置系统信息库执行完整性检查。如果 svc.configd 完整性检查失败,则 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:

    /system/volatile/db_errors

  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
  http://support.oracle.com/msg/SMF-8000-MY for more information.

svc.configd 守护进程随即退出。svc.startd 守护进程将检测到该退出行为,然后 svc.startd 启动 sulogin

sulogin 提示符下,输入 Ctrl-D 以退出 suloginsvc.startd 守护进程识别出 sulogin 退出行为,然后重新启动 svc.configd 守护进程以重新检查系统信息库。在这次额外的重新启动后,问题可能不会再出现。请勿直接调用 svc.configd 守护进程。svc.startd 守护进程启动 svc.configd 守护进程。

如果 svc.configd 再次报告完整性检查失败,而您又回到 sulogin 提示符下,请确保所需的文件系统拥有足够的可用空间。使用 root 口令远程或者在 sulogin 提示符下登录。检查根和 system/volatile 文件系统都具有足够的可用空间。如果任一文件系统的空间已满,请在清理后重新启动系统。如果这些文件系统都具有足够的可用空间,请按照如何从备份恢复系统信息库过程执行操作。

服务配置系统信息库可能因任何以下原因而损坏:

  • 磁盘故障

  • 硬件错误

  • 软件错误

  • 无意中覆盖文件

以下过程说明如何将已损坏的系统信息库替换为系统信息库的备份副本。

如何从备份恢复系统信息库

  1. 登录。

    使用 root 口令远程或者在 sulogin 提示符下登录。

  2. 运行系统信息库恢复命令:
    # /lib/svc/bin/restore_repository

    运行此命令可指导您完成恢复未经损坏的备份所必需的步骤。SMF 自动执行系统信息库的备份,如系统信息库备份中所述。

    SMF 维护持久性和非持久性的配置数据。有关这两种系统信息库的说明,请参见服务配置系统信息库restore_repository 命令仅恢复持久性的系统信息库。restore_repository 命令还会重新引导系统,这样会销毁非持久性的配置数据。非持久性数据是系统重新引导后不再需要的运行时数据。

    在启动 /lib/svc/bin/restore_repository 命令之后,会显示一条以下类似的消息:

    See http://support.oracle.com/msg/SMF-8000-MY 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. 

    在使用写入权限挂载了 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 格式提供。

  3. 输入相应的响应。

    通常会选择最新的备份选项。

    Please enter either a specific backup repository from the above list to
    restore it, or one of the following choices:
    
            CHOICE            ACTION
            ----------------  ----------------------------------------------
            boot              restore the most recent post-boot backup
            manifest_import   restore the most recent manifest_import backup
            -seed-            restore the initial starting repository  (All
                                customizations will be lost, including those
                                made by the install/upgrade process.)
            -quit-            cancel script and quit
    
    Enter response [boot]:

    如果在未指定要恢复的备份的情况下按 Enter 键,则会选择括在 [] 中的缺省响应。选择 -quit- 会退出 restore_repository 脚本,并返回到 shell 提示符。


    注 -  选择 -seed- 会恢复 seed 系统信息库。此系统信息库设计用于初始安装和升级过程。如非绝对必要,请勿使用 seed 系统信息库进行恢复。

    在选择了要恢复的备份之后,系统将对其进行验证并检查其完整性。如有任何问题,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
    /system/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]?
  4. 键入 yes 修复故障。

    restore_repository 命令执行了列出的所有操作之后,系统将重新引导。

指定启动消息量

缺省情况下,系统引导期间启动的每项服务不会在控制台上显示消息。使用以下方法之一更改哪些消息显示在控制台上以及哪些消息仅记录在 svc.startd 日志文件中。logging-level 的值可以为下表中所示的值之一。

  • 引导 SPARC 系统时,请在 ok 提示符下为 boot 命令指定 -m 选项。请参见 kernel(1M) 手册页中的“消息选项”。

    ok boot -m logging-level
  • 引导 x86 系统时,编辑 GRUB 菜单以指定 -m 选项。请参见引导和关闭 Oracle Solaris 11.2 系统 中的通过在引导时编辑 GRUB 菜单添加内核参数kernel(1M) 手册页中的“消息选项”。

  • 在引导系统之前,请使用 svccfg 命令更改 options/logging 属性的值。如果此属性在此系统上从未更改过,则不会退出,您必须添加它。下面的示例更改为详细消息。更改会在下次 svc.startd 守护进程重新启动时生效。

    $ svccfg -s system/svc/restarter:default listprop options/logging
    $ svccfg -s system/svc/restarter:default addpg options application
    $ svccfg -s system/svc/restarter:default setprop options/logging=verbose
    $ svccfg -s system/svc/restarter:default listprop options/logging
    options/logging astring     verbose
表 A-1  SMF 启动消息日志记录级别
日志记录级别关键字
说明
quiet
在控制台上显示任何需要管理性干预的错误消息。另外还将这些消息记录在 syslog/var/svc/log/svc.startd.log 中。
verbose
除了 quiet 级别下提供的消息以外,在控制台上为每个启动的服务显示一条消息,并在 /var/svc/log/svc.startd.log 中记录不需要管理性干预的错误信息。
debug
除了 quiet 级别下提供的消息以外,在控制台上为每个启动的服务显示一条消息,并在 /var/svc/log/svc.startd.log 中记录所有 svc.startd 调试消息。

指定要引导至的 SMF 里程碑

当您引导系统时,可以指定要引导至的 SMF 里程碑。

缺省情况下,general/enabled 属性值为 true 的所有服务都在系统引导时启动。要更改系统将引导至的里程碑,请使用以下方法之一。milestone 的值可以为里程碑服务的 FMRI 或Table A–2 中所示的关键字。

  • 引导 SPARC 系统时,请在 ok 提示符下为 boot 命令指定 -m 选项。请参见 kernel(1M) 手册页中的 -m 选项。

    ok boot -m milestone=milestone
  • 引导 x86 系统时,编辑 GRUB 菜单以指定 -m 选项。请参见引导和关闭 Oracle Solaris 11.2 系统 中的通过在引导时编辑 GRUB 菜单添加内核参数kernel(1M) 手册页中的 -m 选项。

  • 在重新引导系统之前,请使用带 -d 选项的 svcadm milestone 命令。请注意,不管带不带 -d 选项,此命令都限制运行中的服务并立即对其进行恢复。带 -d 选项时,此命令还将指定的里程碑设置为缺省的引导里程碑。此新的缺省设置在重新引导后仍有效。

    $ svcadm milestone -d milestone

    此命令不更改当前的系统运行级别。要更改当前的系统运行级别,请使用 init 命令。

    如果指定 -s 选项,则 svcadm 会更改里程碑,然后等待指定里程碑转换完成后才返回。svcadm 命令在所有实例都转换为到达指定里程碑所需的状态或确定需要管理员干预才能完成转换后返回。将 -T 选项和 -s 选项一起使用,以指定完成里程碑更改操作或返回的上界(以秒为单位)。

下表介绍了 SMF 引导里程碑,包括任何对应的 Oracle Solaris 运行级别。系统的运行级别定义了哪些服务和资源可供用户使用。系统一次只能在一个运行级别下运行。有关运行级别的信息,请参见引导和关闭 Oracle Solaris 11.2 系统 中的运行级别的工作原理inittab(4) 手册页和 /etc/init.d/README 文件。有关 SMF 引导里程碑的更多信息,请参见 svcadm(1M) 手册页中的 milestone 子命令。

表 A-2  SMF 引导里程碑和对应的运行级别
SMF 里程碑 FMRI 或关键字
对应的运行级别
说明
none
 
none 关键字代表的里程碑,除了主重启程序以外,没有其他服务运行。指定 none 后,除了 svc:/system/svc/restarter:default 以外的所有服务都被临时禁用。
none 里程碑在调试启动问题时很有用。有关具体说明,请参见如何检查系统引导期间启动服务时出现的问题
all
 
all 关键字代表的里程碑依赖于所有服务。指定 all 后,将忽略所有服务的临时启用和禁用请求。这是 svc.startd 使用的缺省里程碑。
svc:/milestone/single-user
s 或 S
忽略 svc:/milestone/single-user:default 及其直接或间接依赖的所有服务的临时启用和禁用请求。临时禁用所有其他服务。
svc:/milestone/multi-user
2
忽略 svc:/milestone/multi-user:default 及其直接或间接依赖的所有服务的临时启用和禁用请求。临时禁用所有其他服务。
svc:/milestone/multi-user-server
3
忽略 svc:/milestone/multi-user-server:default 及其直接或间接依赖的所有服务的临时启用和禁用请求。临时禁用所有其他服务。

要确定系统当前引导至的里程碑,请使用 svcs 命令。下面的示例说明系统将引导至运行级别 3 milestone/multi-user-server

$ svcs 'milestone/*'
STATE          STIME    FMRI
online          9:08:05 svc:/milestone/unconfig:default
online          9:08:06 svc:/milestone/config:default
online          9:08:07 svc:/milestone/devices:default
online          9:08:25 svc:/milestone/network:default
online          9:08:31 svc:/milestone/single-user:default
online          9:08:51 svc:/milestone/name-services:default
online          9:09:13 svc:/milestone/self-assembly-complete:default
online          9:09:23 svc:/milestone/multi-user:default
online          9:09:24 svc:/milestone/multi-user-server:default

使用 SMF 检查系统引导问题

本节介绍系统在引导期间挂起或关键服务在引导期间无法启动等情况下执行的操作。

如何检查系统引导期间启动服务时出现的问题

如果系统引导期间启动服务时发生问题,有时系统将在引导期间挂起。以下过程说明如何调查引导期间发生的服务问题。

  1. 在不启动任何服务的情况下引导。

    下面的命令指示 svc.startd 守护进程临时禁用所有的服务并在控制台上启动 sulogin

    ok boot -m milestone=none

    有关您可以用于 boot -m 命令的 SMF 里程碑列表,请参见指定要引导至的 SMF 里程碑

  2. root 身份登录系统。
  3. 启用所有服务。
    # svcadm milestone all
  4. 确定引导过程挂起的位置。

    在引导过程挂起时,通过运行 svcs -a 来确定哪些服务未在运行。在位于 /var/svc/log 中的日志文件中查找错误消息。

  5. 在问题得以修复之后,检验所有的服务是否已启动。
    1. 检验是否所有必需的服务都已联机。
      # svcs -x
    2. 检验是否满足 console-login 服务的依赖性。

      以下命令检验控制台上的 login 进程是否将运行。

      # svcs -l system/console-login:default
  6. 继续执行正常的引导过程。

如何在引导期间本地文件系统服务出现错误时强制执行单用户登录

引导系统时不需要的本地文件系统由 svc:/system/filesystem/local:default 服务挂载。当其中的任何文件系统无法挂载时,filesystem/local 服务将进入维护状态。系统将继续启动,并将启动不依赖 filesystem/local 的任何服务,不启动属于 filesystem/local 服务必需相关项的服务。

此过程说明如何更改系统的配置,以在该服务出现错误后立即出现 sulogin 提示符,而不是允许系统继续启动。

  1. 修改 system/console-login 服务。
    $ svccfg -s svc:/system/console-login
    svc:/system/console-login> addpg site,filesystem-local dependency
    svc:/system/console-login> setprop site,filesystem-local/entities = fmri: svc:/system/filesystem/local
    svc:/system/console-login> setprop site,filesystem-local/grouping = astring: require_all
    svc:/system/console-login> setprop site,filesystem-local/restart_on = astring: none
    svc:/system/console-login> setprop site,filesystem-local/type = astring: service
    svc:/system/console-login> end
  2. 刷新服务。
    $ svcadm refresh console-login

    system/filesystem/local:default 服务出现错误时,请使用 svcs -vx 命令来标识该错误。在错误得到修复后,请使用下面的命令清除错误状态并允许系统继续引导:

    $ svcadm clear filesystem/local

inetd 服务转换为 SMF 服务

您系统上的 inetd.conf 文件应该不包含任何条目。inetd.conf 文件应该仅包含表明这是不再直接使用的旧文件的注释。如果 inetd.conf 文件包含任何条目,请按照本节中的说明将这些配置转换为 SMF 服务。如果 inetd.conf 文件中配置的服务未配置为 SMF 服务,则无法使用这些服务。inetd.conf 文件中配置的服务不直接通过 inetd 命令重新启动。然而,inetd 命令是委托的用于已转换服务的重启程序。

在初始系统引导期间,inetd.conf 文件中的配置会自动转换为 SMF 服务。初始系统引导后,可以通过安装映像包管理系统 (Image Packaging System, IPS) 软件包未提供的其他软件向 inetd.conf 文件中添加条目。IPS 软件包提供的软件包括任何必需的 SMF 清单,该 SMF 清单通过正确的属性值实例化该服务实例。

如果您系统上的 inetd.conf 文件包含任何条目,请使用 inetconv 命令将那些配置转换为 SMF 服务。inetconv 命令将 inetd.conf 条目转换为 SMF 服务清单文件,并将那些清单导入 SMF 系统信息库以实例化服务实例。要了解命令选项的信息并查看命令的使用示例,请参见 inetconv(1M) 手册页。

新 SMF 清单的名称采用 inetd.conf 条目中的 service_nameinetd.conf 文件中的条目另存为新服务实例的属性。新的 SMF 清单指定属性组和属性,以定义 inetd.conf 条目中列出的操作。运行 inetconv 命令后,请使用 svcssvcprop 命令确保新的服务实例得到创建并具有正确的属性值。

inetd 命令是委托的用于 SMF Internet 服务的重启程序。请勿直接使用 inetd 命令管理这些服务。使用不带选项或操作数的 inetadm 命令查看 inetd 控制的服务列表。使用 inetadmsvcadmsvccfg 命令配置和管理这些转换的服务。

inetconv 命令不修改输入 inetd.conf 文件。您应该在成功运行 inetconv 后手动删除 inetd.conf 文件中的所有条目。

有关配置已转换为 SMF 服务的 inetd 服务的信息,请参见修改 inetd 控制的服务