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

退出打印视图

更新时间: 2014 年 7 月
 
 

如何使用服务包生成器工具创建 SMF 服务

此过程说明如何创建将现有定制脚本用作 start 方法的服务。

  1. 确定服务模型。

    缺省情况下,svcbundle 会创建一个 transient 服务。确定此服务的 start 方法脚本是否启动任何长时间运行的守护进程,以及是否是一个 contract 服务。有关服务模型的信息,请参见服务模型svc.startd(1M) 手册页。

  2. 将脚本复制到标准位置。

    在此示例中,此服务的 start 方法脚本是名为 ex_svc 的脚本。将此脚本复制到 /lib/svc/method/ex_svc

  3. 创建一个初始清单。

    在此示例中,服务名称为 site/ex_svc。这是一个不需要 stop 方法的瞬态服务。

    $ svcbundle -o /tmp/ex_svc.xml -s service-name=site/ex_svc \
          -s start-method=/lib/svc/method/ex_svc
  4. 对清单进行任何必要的更改。

    验证 /tmp/ex_svc.xml 清单中的内容是否为您所需的内容。根据需要添加注释。

  5. 验证清单是否有效。

    使用 svccfg validate 命令确保服务清单有效。

  6. 将清单复制到标准目录。
    $ cp /tmp/ex_svc.xml /lib/svc/manifest/site/ex_svc.xml
  7. 导入清单并启动服务。
    $ svcadm restart manifest-import
示例 5-1  自动安装生成的清单

如果您不需要对新的服务清单进行任何更改,则可以使用 -i 选项在创建清单后立即安装该清单。svcbundle 命令将清单写入 /lib/svc/manifest/site,并重新启动 manifest-import 服务。将覆盖 /lib/svc/manifest/site 目录中任何具有相同名称的现有文件。

# svcbundle -i -s service-name=site/ex_svc \
	-s start-method=/lib/svc/method/ex_svc