【问题标题】:zookeeper and supervisor do not work well togeatherzookeeper 和 supervisor 不能很好地协同工作
【发布时间】:2013-08-03 05:59:00
【问题描述】:

下面是我的 supervisord.conf 文件。有人会认为它会启动 zookeeper,但事实并非如此。

如果我运行 sh /var/chef/cache/zookeeper-3.4.5/bin/zkServer.sh start-foreground,ZK 会手动工作

# -*- conf -*-

[include]
files = *.supervisor

[supervisord]
pidfile = /var/run/supervisord.pid
nodaemon=false

[supervisorctl]
serverurl=unix:///var/run/supervisord.sock ; use a unix:// URL for a unix socket

[unix_http_server]
file = /var/run/supervisord.sock

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface


[program:zookeeper]
command= sh /var/chef/cache/zookeeper-3.4.5/bin/zkServer.sh start-foreground
process_name=%(program_name)s
autostart=true
autorestart=true
stdout_logfile=/var/log/zookeeper.log
stopsignal=KILL
#stopasgroup = true
#killasgroup = true
#stdout_logfile = /tmp/zookeeper.out
#stderr_logfile = /tmp/zookeeper.err
pidfile = /var/run/zookeeper.pid


[group:zookeeper_server]
programs=zookeeper

【问题讨论】:

  • 你可以将stdout和stderr都重定向到/var/log/zookeeper.log, command= sh /var/chef/cache/zookeeper-3.4.5/bin/zkServer.sh start-foreground > > /var/log/zookeeper.log 2>&1 .
  • 您好@Tampa,您与 zookeeper 和 supervisord 的旅程如何?我正在寻找 zookeeper 的监督流程,我想知道 supervisord 是否可行,尽管在 zookeeper 网站上,它提到了 daemontools。

标签: apache-zookeeper supervisord


【解决方案1】:

例如使用显式命令而不在命令中调用 shell:

command=/opt/java/bin/java -Dzookeeper.log.dir="." -cp "/home/app/zookeeper/bin/../build/classes:/home/app/zookeeper/bin/../build/lib/*.jar:/home/app/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/app/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/home/app/zookeeper/bin/../lib/netty-3.2.2.Final.jar:/home/app/zookeeper/bin/../lib/log4j-1.2.15.jar:/home/app/zookeeper/bin/../lib/jline-0.9.94.jar:/home/app/zookeeper/bin/../zookeeper-3.4.5.jar:/home/app/zookeeper/bin/../src/java/lib/*.jar:/home/app/zookeeper/bin/../conf:"  -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain "/home/app/zookeeper/bin/../conf/zoo.cfg"

在 /opt/java/ 中使用 java,在 /home/app/zookeeper 中使用 zookeeper

要找到它,您可以启动 shell 并复制粘贴命令行。

似乎supervisor有时会根据os / vm等在shell脚本和python脚本方面遇到麻烦。我还没有找到原因。

但是如果你使用一个独立的命令它工作得很好。

我在 supervisord 中将 zookeeper 作为前台进程执行,在 zookeeper log4j 配置(仅限控制台)中禁用滚动日志并使用 supervisord 轮换。它完成了这项工作。

【讨论】:

    猜你喜欢
    • 2016-12-08
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 2018-01-18
    • 1970-01-01
    • 2018-12-25
    • 2012-01-07
    相关资源
    最近更新 更多