Wie in ZooKeeper's Dokument gesagt, ist es notwendig, es mit einem Tool wie daemontools zu überwachen. Das Dokument enthält jedoch keine Beispiele. Die einzige Möglichkeit, um ZooKeeper zu starten, ist die Ausführung von bin/zkServer.sh start. Ich plane, Supervisord zu benutzen, um den Job zu machen, aber wie man den Abschnitt [Programm: Tierpfleger] schreibt, ist jenseits von mir. Jedes Beispiel wird großartig sein. Vielen Dank.ZooKeeper mit Supervisord überwachen
Bisher sind es zwei Lösungen:
- den neuesten Code von Github verwenden, bietet es stopasgroup und killasgroup Optionen.
- Führen Sie bin/zkServer.sh print-cmd aus und kopieren Sie die Ausgabe in die 'command' -Optionen von supervisord, entfernen Sie das Pipe-Argument und fügen Sie stdout_logfile, stderr_logfile, hinzu. Wie folgt aus:
[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
mögliches Duplikat von [supervisord stoppende untergeordnete Prozesse] (http://stackoverflow.com/questions/9090683/supervisord-stopping-child-processes) –