![](/img/trans.png)
[英]Vagrant / Debian / Puppet / Elasticsearch init.d start-stop-daemon won't start the service
[英]start-stop-daemon weird behaviour
我正在為Elasticsearch創建一個托盤箱。 我被困在服務無法啟動的問題上,但是在查看日志后,似乎與貨盤並沒有任何關系。 我正在使用1.0的elasticsearch apt軟件包,其中包括一個初始化腳本。 如果我運行sudo service elasticsearch start
那么ES可以正常啟動。 如果托盤為我完成了此任務,則它將標准輸出記錄為已成功啟動
start elasticsearch
* Starting Elasticsearch Server
...done.
但是,它尚未啟動。
sudo service elasticsearch status
* elasticsearch is not running
我弄亂了init腳本,發現啟動守護程序后是否添加了sleep 1
,所以它可以與Palette一起正常使用。
start-stop-daemon --start -b --user "$ES_USER" -c "$ES_USER" --pidfile "$PID_FILE" --exec $DAEMON -- $DAEMON_OPTS
#this sleep will allow it to work
#sleep 1
log_end_msg $?
我不明白發生了什么事?
我以前也見過這樣的問題。 通常歸結為期望在腳本完成之前完成某些操作,這可能並不總是在服務中發生,因為它們派生了后台任務,這些任務在ssh連接終止時仍然可能被殺死。
對於這類事情,您應該使用Pallet的內置代碼在監督下運行事情。 這還具有使以后很容易從純init.d切換到runit或daemontools的優點,這對Elasticsearch尤其有用,因為它是一個JVM進程,如果讓它運行足夠長的時間,幾乎所有JVM最終都會崩潰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.