2012-08-16 87 views
11

正如ZooKeeper的文檔中所說的,有必要使用daemontools等工具來監督它。但是文檔沒有提供任何示例,我知道啓動ZooKeeper的唯一方法是運行bin/zkServer.sh start。我打算使用supervisord來完成這項工作,但如何編寫[program:zookeeper]部分超出了我的想象。任何例子都會很棒。謝謝。Supervisise ZooKeeper with Supervisord

到目前爲止,是兩種解決方法:

  1. 使用從GitHub最新的代碼,它提供stopasgroup和killasgroup選項。
  2. 執行bin/zkServer.sh print-cmd,並將輸出複製到supervisord的'command'選項,移除管道參數並添加stdout_logfile,stderr_logfile。如下所示:
 
    [program:zookeeper] 
    command = /usr/lib/jvm/java-1.7.0-openjdk.x86_64/bin/java -Dzookeeper.log.dir="." -Dzookeeper.root.logger="INFO,CONSOLE" -cp "/home/jizhang/Applications/zookeeper/bin/../build/classes:/home/jizhang/Applications/zookeeper/bin/../build/lib/*.jar:/home/jizhang/Applications/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/jizhang/Applications/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/home/jizhang/Applications/zookeeper/bin/../lib/netty-3.2.2.Final.jar:/home/jizhang/Applications/zookeeper/bin/../lib/log4j-1.2.15.jar:/home/jizhang/Applications/zookeeper/bin/../lib/jline-0.9.94.jar:/home/jizhang/Applications/zookeeper/bin/../zookeeper-3.4.3.jar:/home/jizhang/Applications/zookeeper/bin/../src/java/lib/*.jar:/home/jizhang/Applications/zookeeper/bin/../conf:" -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain "/home/jizhang/Applications/zookeeper/bin/../conf/zoo.cfg" 
    stdout_logfile = /home/jizhang/Applications/zookeeper/zookeeper.out 
    stderr_logfile = /home/jizhang/Applications/zookeeper/zookeeper.err 
    autorestart = true 
+0

[supervisord停止子進程]的可能的副本(http://stackoverflow.com/questions/9090683/supervisord-stopping-child-processes) – 2012-08-16 09:38:09

回答

10

有一個類似的問題here

[program:zookeeper] 
command=zkServer.sh start-foreground 
autorestart=true 
stopsignal=KILL 

這個問題提到殺死進程的問題,我不知道是否有一個解決方案呢。

+0

看來,最新的supervisord已經獲得此功能。 doc here http://supervisord.org/configuration.html選項:stopasgroup – 2012-08-16 07:10:46

+0

@Jerry:「引入:3.0a13」。當前版本是3.0a12,該文檔似乎是從GitHub存儲庫生成的。 – 2012-08-16 09:40:50

+0

@MartijnPieters難怪它不工作... – 2012-08-17 01:01:03