簡體   English   中英

start-stop-daemon怪異的行為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM