是否有使用pallet.crate.service的指南

时间:2014-05-22 09:28:26

标签: clojure elasticsearch pallet

我想在一台机器上启动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))}))

1 个答案:

答案 0 :(得分:2)

我不记得service是否做了额外的事情而不是给你一个惯用的服务界面,所以你可以做的是使用exec-script*,这就是我自己做的代码没有任何问题。事实上,我甚至用Elasticsearch(以及其他东西)和我的服务使用runit进行监督。

(exec-script* "service elasticsearch start")

但是,当服务无法启动时,或许service可以更好地恢复?如果service elasticsearch start没有返回0,那么整个计划都会失败。