1

Sphinx 構成用の Rails サイトのテンプレートがあります。アプリごとに 1 つずつ、異なるポートで実行されている同じマシン上に複数の異なる Sphinx サービスが存在する可能性があります。したがって、II は、対応する構成テンプレートが変更された場合にのみ、各サイトの Sphinx を再起動したいと考えています。次のようなパラメーターに基づいて、1 つのスフィンクスのみを再起動する /etc/init.d/sphinx スクリプトを作成しました。

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

ここで、site1.conf は Chef テンプレートによって定義されます。テンプレートが変更された場合、Chef テンプレートの通知機能を使用して、正しい site1.conf パラメータを渡したいと思います。これは可能ですか?

または、次のようなサイトごとに異なるサービスを登録することもできます。

/etc/init.d/sphinx_site1

ただし、代わりにパラメーターをスクリプトに渡すことをお勧めします。

4

1 に答える 1

6

リソースを定義するときserviceに、実行される開始、停止、および再起動コマンドをカスタマイズできます。これらのカスタマイズされたコマンドを使用して、サイトごとにリソースを定義serviceし、対応する通知を設定できます。

例えば:

サービス"sphinx_site1"do
  :restart=>trueをサポートします
  restart_command "/etc/init.d/sphinx restart /etc/sphinx/site1.conf"
  アクション:なし
終わり

テンプレート"/etc/sphinx/site1.conf"do
  通知:restart、 "service[sphix_site1]"
終わり
于 2012-08-16T18:15:58.507 に答える