2014-07-20 65 views
3

在對Kafka in supervisor mode做出回答之後,我試圖做同樣的事情。事情是,我的卡夫卡(版本0.8.1.1)似乎包裝不同的運行腳本。所以,我曾試圖去適應併產生了以下supervisord配置:kafka 0.8.1.1在監督下(supervisord)在停止supervisord守護進程時不會被殺死

[program:kafka] 
command=pidproxy /var/run/kafka.pid /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties 
user=kafka 
autostart=true 
autorestart=true 
startsecs=10 
startretries=999 
log_stdout=true 
log_stderr=true 
logfile=/var/log/kafka/supervisord-kafka.out 
logfile_maxbytes=20MB 
logfile_backups=10 

我用主管的以下rpm:

[[email protected] yyy]# rpm -qi supervisor 
Name  : supervisor     Relocations: (not relocatable) 
Version  : 3.0        Vendor: obs://build.opensuse.org/home:presbrey 
Release  : 13.1       Build Date: Thu 13 Jun 2013 08:35:40 AM IDT 

回採的supervisord守護進程不殺死卡夫卡見下圖:

[[email protected] yyy]# jps 
3236 core 
31378 QuorumPeerMain 
31408 Jps 
2964 Kafka 
31293 supervisor 
31246 nimbus 

[[email protected] yyy]# supervisorctl status 
kafka       RUNNING pid 2963, uptime 1 day, 5:15:18 
storm-nimbus      RUNNING pid 31246, uptime 0:02:06 
storm-supervisor     RUNNING pid 31293, uptime 0:01:44 
storm-ui       RUNNING pid 3236, uptime 5 days, 22:37:33 
storm-zookeeper     RUNNING pid 31378, uptime 0:00:47 


[[email protected] yyy]# service supervisord stop 
Stopping supervisord: Shut down 
Waiting roughly 60 seconds for /var/run/supervisord.pid to be removed after child processes exit 
Supervisord exited as expected in under 12 seconds 


[[email protected] yyy]# supervisorctl status 
unix:///var/tmp/supervisor.sock no such file 


[[email protected] yyy]# jps 
2964 Kafka 
31474 Jps 
+1

你可以嘗試添加'stopasgroup = true'到主管的kafka部分,看看這是否有效? –

+0

非常感謝!你想添加它作爲答案,所以我可以upvote和標記? – Yaneeve

回答

6

那麼,正如我前面說的stopasgroup=true應該有所幫助。我並不是100%確定的確切原因,但從我的理解來看,這是因爲kafka是由shell腳本啓動的,默認情況下是在拆卸時,只有該腳本會被殺死。

+0

我可以在哪裏添加您提到的選項? – SonOfSun

+0

@SonOfSun到與kafka有關的supervisord部分,確切的位置並不重要 –