安装 Oracle® Solaris 11.2 系统

退出打印视图

更新时间: 2014 年 7 月
 
 

如何确保仅在首次引导时运行一次

  1. 创建一个服务以运行脚本。

    创建此简单服务的最简便方法是使用 svcbundle 命令,如使用清单创建工具中所示。

  2. 在运行脚本之前设置一个脚本完成标志。

    在服务清单中定义一个布尔型完成属性,然后将其值设置为 false。请参见Example 13–3 清单中的 completed 属性。

  3. 在脚本末尾设置脚本完成标志。

    在脚本末尾使用 svccfg 命令将 completed 属性设置为 true。使用 svcadm 命令刷新服务以获取新的属性值。请参见Example 13–1 中脚本样例的末尾处。

  4. 脚本完成后,禁用该服务。

    在服务清单中,将创建并启用缺省服务实例。将在脚本中禁用服务。退出首次引导脚本时,使用 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