此过程说明如何创建将现有定制脚本用作 start 方法的服务。
缺省情况下,svcbundle 会创建一个 transient 服务。确定此服务的 start 方法脚本是否启动任何长时间运行的守护进程,以及是否是一个 contract 服务。有关服务模型的信息,请参见服务模型和 svc.startd(1M) 手册页。
在此示例中,此服务的 start 方法脚本是名为 ex_svc 的脚本。将此脚本复制到 /lib/svc/method/ex_svc。
在此示例中,服务名称为 site/ex_svc。这是一个不需要 stop 方法的瞬态服务。
$ svcbundle -o /tmp/ex_svc.xml -s service-name=site/ex_svc \ -s start-method=/lib/svc/method/ex_svc
验证 /tmp/ex_svc.xml 清单中的内容是否为您所需的内容。根据需要添加注释。
使用 svccfg validate 命令确保服务清单有效。
$ cp /tmp/ex_svc.xml /lib/svc/manifest/site/ex_svc.xml
$ svcadm restart manifest-import
如果您不需要对新的服务清单进行任何更改,则可以使用 -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