1

マシンでelasticsearchサービスを開始したいのですが、元々はpallet.actions.serviceを使用してこれを行うつもりでしたが、ドキュメントによると、これはpallet.crate.service/serviceを支持して非推奨になりました。

ただし、ノードに既にインストールされている initd サービスを単純​​に開始するためのガイドが見つかりません。

以下は、古いサービス関数を使用して es ノードを実行する最初の試みです。残念ながら、これでサービスを開始することもできませんでした.elasticsearchをインストールしましたが、サービスを実行しませんでした. これをいじっていると、非推奨になっていることに気付きました。

(def elasticsearch-server
  (server-spec
   :extends [(javacrate/server-spec {})]
   :phases
     {:install (plan-fn
                (add-es-source)
                (package-manager :update)
                (package "elasticsearch")
                (service "elasticsearch" :action :start))}))
4

1 に答える 1

2

serviceサービスへの慣用的なインターフェイスを提供する以外に何か特別なことをするかどうかは思い出せません。そのため、できることは を使用することですexec-script*。これは、私が自分のコードで問題なく行っていることです。実際、Elasticsearch (とりわけ) や監視に runit を使用するサービスでもこれを行っています。

(exec-script* "service elasticsearch start")

serviceただし、サービスの開始に失敗した場合は、おそらくより適切に回復できるでしょうか? service elasticsearch start戻らない場合0、計画全体が失敗します。

于 2014-05-22T17:03:25.857 に答える