
我被分配了 3 個集群。一種是 Kafka,一種是 Storm,一種是 ZooKeeper。我需要這樣做,以便服務啟動,並在停止時重新啟動,如中所述Zookeeper 管理指南。
OS for every machine => Ubuntu-trusty 14.04
Platform => Running in Amazon EC2
因此,回顧一下,我需要能夠在啟動時啟動相應的服務。如果服務啟動,我需要它重新啟動。我需要為 Storm、Kafka 和 Zookeeper 執行此操作。我需要簡單直接的答案。提出這個問題的另一種方式是:實現我的目標最簡單的方法是什麼?
答案1
Ubuntu的服務管理機制是Upstart。新貴指南在這裡: http://upstart.ubuntu.com/cookbook/
上手並不難。有很多例子你可以抄襲。
事實證明(從評論中連結的我們的聊天)@MassSql 具有後台服務(並且可能會在它們死掉時監視/重新啟動自己)。鑑於這種情況,他可以使用更簡單/遺留的 RC 腳本機制(由 Upstart 實現,但介面更簡單,用於在啟動時啟動並在關機時停止這些更簡單的任務)。所以這是這種方法:
- 前往 /etc/init.d,並製作 dns-clean 的副本(根據您的喜好重新命名)。
- 編輯文件。
INIT INFO
透過更改描述並清除Required-Start
和欄位來更改該部分Required-Stop
。為 取一個新名字Provides
。 (基本上改變一切,但Default-Start
) - 刪除這些行:
測試-f /usr/sbin/pppconfig ||出口0
mkdir /var/run/pppconfig >/dev/null 2>&1 ||真的
測試-f /etc/ppp/ip-down.d/0dns-down ||出口0
更改區塊中的行
start)
以運行腳本。把 留;;
在最後。Run
update-rc.d foobar enable
其中foobar
是您的服務的名稱(應該是檔案的名稱以及Provides
,至少按照慣例)。
重新啟動系統並進行測試。