1

我有一个用于 Sphinx 配置的 Rails 站点模板。同一台机器上可以有多个不同的 Sphinx 服务在不同的端口上运行,每个应用一个。因此,II 只希望在每个站点的相应配置模板发生更改时重新启动 Sphinx。我创建了一个 /etc/init.d/sphinx 脚本,它根据类似于以下的参数重新启动一个 sphinx:

/etc/init.d/sphinx restart /etc/sphinx/site1.conf

其中 site1.conf 由 Chef 模板定义。如果模板更改,我真的很想使用 Chef Templates 的通知功能来传递正确的 site1.conf 参数。这可能吗?

或者,我想我可以为每个站点注册不同的服务,类似于:

/etc/init.d/sphinx_site1

但是,我更愿意将参数传递给脚本。

4

1 回答 1

6

定义service资源时,您可以自定义将要运行的启动、停止和重新启动命令。您可以使用这些自定义命令为您拥有的每个站点定义一个service资源并设置其相应的通知。

例如:

服务“sphinx_site1”做
  支持 :restart => true
  restart_command "/etc/init.d/sphinx 重启 /etc/sphinx/site1.conf"
  行动:无
结尾

模板“/etc/sphinx/site1.conf”做
  通知:重新启动,“服务 [sphix_site1]”
结尾
于 2012-08-16T18:15:58.507 回答