Контролируйте ZooKeeper с помощью Supervisord

Как сказано в документе ZooKeeper, необходимо контролировать его с помощью такого инструмента, как daemontools. Но в документе нет примеров, и единственный известный мне способ запустить ZooKeeper — запустить bin/zkServer.sh start. Я планирую использовать супервизора для выполнения этой работы, но как написать раздел [программа :zookeeper] не в моих силах. Любой пример будет отличным. Спасибо.

Пока есть два решения:

  1. используйте последний код из github, он предоставляет опции stopasgroup и killasgroup.
  2. выполните bin/zkServer.sh print -cmd и скопируйте вывод в параметры «команды» supervisord, удалите аргумент канала и добавьте файл журнала stdout _, файл журнала stderr _. Подобно следующему:
    [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
11
задан Ji ZHANG 17 August 2012 в 02:25
поделиться