我想在一台机器上启动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))}))
答案 0 :(得分:2)
我不记得service
是否做了额外的事情而不是给你一个惯用的服务界面,所以你可以做的是使用exec-script*
,这就是我自己做的代码没有任何问题。事实上,我甚至用Elasticsearch(以及其他东西)和我的服务使用runit进行监督。
(exec-script* "service elasticsearch start")
但是,当服务无法启动时,或许service
可以更好地恢复?如果service elasticsearch start
没有返回0
,那么整个计划都会失败。