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除了给你一个惯用的服务接口之外是否做了其他事情,所以你可以做的是 use exec-script*,这是我在自己的代码中所做的,没有任何麻烦。事实上,我什至使用 Elasticsearch(除其他外)和我的服务使用 runit 进行监督来做到这一点。

(exec-script* "service elasticsearch start")

service但是,当服务无法启动时,也许可以更好地恢复?如果service elasticsearch start不返回0,那么您的整个计划将失败。

于 2014-05-22T17:03:25.857 回答