跳过导航链接 | |
退出打印视图 | |
安装 Oracle Solaris 11.1 系统 Oracle Solaris 11.1 Information Library (简体中文) |
以下过程显示了如何确保脚本仅在首次引导新安装的系统时运行并且仅运行一次。
创建此简单服务的最简便方法是使用 svcbundle 命令,如使用清单创建工具中所示。
在服务清单中定义一个布尔型完成属性,然后将其值设置为 false。请参见示例 13-3 清单中的 completed 属性。
在脚本末尾使用 svccfg 命令将 completed 属性设置为 true。使用 svcadm 命令刷新服务以获取新的属性值。请参见示例 13-1 中脚本样例的末尾处。
在服务清单中,将创建并启用缺省服务实例。将在脚本中禁用服务。退出首次引导脚本时,使用 SMF_EXIT_TEMP_DISABLE 退出代码退出服务的 start 方法并暂时禁用服务。服务将被禁用,并且服务的 stop 方法也不会运行。
相对于永久禁用服务而言,暂时禁用服务更可取,这样更易于重新启用服务。在某些情况下,必须重新运行脚本(从而运行服务)才能更新已完成的配置工作,如区域克隆或迁移。如果永久禁用服务,则必须运行 svcadm enable 命令才能重新启用服务。
暂时禁用服务也比使服务联机更可取。联机的服务在每次重新引导时像是在执行操作。在本示例中,服务的名称为 site/first-boot-script-svc。引导客户机后,可以看到服务正处于 disabled 状态:
$ svcs first-boot-script-svc STATE STIME FMRI disabled 8:24:16 svc:/site/first-boot-script-svc:default