我被分配了 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)
以运行脚本。把 留;;
在最后。运行
update-rc.d foobar enable
其中foobar
是您的服务名称(应该是文件的名称以及Provides
,至少按照惯例)。
重新启动系统并进行测试。