SMF 是用于启动应用程序的建议机制。在大多数情况下,SMF 可以取代配置文件来管理服务。本节介绍如何处理一些常见的旧配置脚本和文件。
/etc/rc?.d 目录(其中 ? 表示运行级别)包含用于管理运行级别转换期间执行的服务的旧初始化和终止脚本。以前由 /etc/rc?.d 脚本实现的大多数服务现在都由 SMF 管理。部分 /etc/rc?.d 脚本得到保留以允许您使用要求通过 /etc/rc*.d 脚本实现这些服务的第三方应用程序。这些脚本硬链接至 /etc/init.d 目录中的文件。有关 /etc/rc?.d 脚本和运行级别的信息,请参见 /etc/init.d/README 文件、/etc/rc?.d 目录中的 README 文件和 inittab(4) 手册页。有关转换运行控制脚本的说明,请参见如何将运行控制脚本转换为 SMF 服务。在您转换 rc?d 脚本之后,将脚本从 Sscript 重命名为 sscript 以有效删除脚本。
/etc/init.d 目录包含用于更改 init 状态的初始化和终止脚本。其中部分脚本会硬链接至 /etc/rc?.d 目录中的脚本。有关 /etc/init.d 脚本的信息,请参见 /etc/init.d/README 和 init.d(4) 手册页。
旧 init.d 运行控制脚本使用以 lrc(而非 svc)开头的 SMF FMRI 表示。例如,/etc/rc2.d/S47pppd PPP 配置脚本由 lrc:/etc/rc2_d/S47pppd 服务表示。这些 lrc 服务的状态为 legacy_run。如下面的示例所示,您可以列出旧服务的名称和启动时间,但是您无法使用 SMF 管理这些服务。
$ svcs lrc:\* STATE STIME FMRI legacy_run 9:34:54 lrc:/etc/rc2_d/S47pppd legacy_run 9:34:54 lrc:/etc/rc2_d/S89PRESERVE $ svcs -l lrc:/etc/rc2_d/S47pppd svcs: Operation not supported for legacy service 'lrc:/etc/rc2_d/S47pppd' $ svccfg -s lrc:/etc/rc2_d/S47pppd listprop svccfg: Operation not supported for legacy service 'lrc:/etc/rc2_d/S47pppd'
init 分发的 /etc/inittab 文件控制进程中的项。请勿直接编辑 /etc/inittab 文件,而应修改 SMF 服务。有关如何修改传递给 ttymon 的参数的示例,请参见如何修改 ttymon 属性值。
有关 /etc/inittab 文件项格式的信息,请参见 inittab(4) 手册页。有关运行级别的信息,请参见 inittab(4) 手册页和 /etc/init.d/README。
以前使用 inetd.conf 文件配置的服务现在使用 SMF 进行配置。inetd.conf 文件中的配置必须先转换为 SMF 服务才能使用。请参见将 inetd 服务转换为 SMF 服务。有关已转换为 SMF 服务的 inetd 服务,请参见修改 inetd 控制的服务。
请勿编辑这些文件。编辑将会丢失。这些文件会根据 SMF 数据自动生成,以向后兼容可以解析该文件的应用程序。使用 svccfg setprop 命令修改属性值,如设置属性值中所示。
nscd.conf 文件的功能已由 svc:/system/name-service-cache SMF 服务替代。如需了解要配置哪些 name-service-cache 属性(而非编辑 nscd.conf 文件),请参见 nscd.conf(4) 手册页。
nsswitch.conf 文件的功能已由 svc:/system/name-service/switch SMF 服务替代。如需了解要配置哪些 name-service/switch 属性(而非编辑 nsswitch.conf 文件),请参见 nsswitch.conf(4) 手册页。
resolv.conf 文件的功能已由 svc:/network/dns/client SMF 服务替代。如需了解要配置哪些 dns/client 属性(而非编辑 resolv.conf 文件),请参见 resolv.conf(4) 手册页。
这些文件是您不应编辑的配置文件的示例。还存在其他此类文件。在少数情况下,编辑配置文件是修改配置的正确方法,如修改由文件配置的服务中所述。在编辑任何配置文件之前,请先阅读文件中的所有注释以及所有相关的手册页,以确保编辑文件是修改相关服务配置的正确方法。