由於在 cli 模式下啓動,停止 kafka 和zookpeer 進程命令行比較繁瑣,所以推薦使用supervisor 來對進程進行管理。
- 安裝: centos 使用 yum 進行supervisor 安裝,其他系統根據自己安裝方式。
- 啓動命令:
systemctl start supervisord
- 查找supervisord.conf 的安裝位置,使用
find / -name supervisord.conf
,我的安裝位置是/etc/supervisord.conf
。 - 我們發現裏面包含一句:
[include]
files = supervisord.d/*.ini
說明子進程配置文件都包含在supervisord.d 目錄下,且以ini結尾,如果習慣使用.conf結尾,可以將此處的擴展名改爲.conf
5. 在supervisord.d 目錄下,新建自己的文件 kafka.ini。
[program:kafka]
command=/root/kafka_2.12-2.5.0/bin/kafka-server-start.sh /root/kafka_2.12-2.5.0/config/server.properties
autostart=true
autorestart=false
stderr_logfile=/tmp/kafka_stderr.log
stdout_logfile=/tmp/kafka_stdout.log
注: command 是進程啓動的命令,包含文件目錄(目錄也可以單獨寫在directory 中)。
- 同樣,新建zookpeer.ini 文件
[program:zook]
command=/root/kafka_2.12-2.5.0/bin/zookeeper-server-start.sh /root/kafka_2.12-2.5.0/config/zookeeper.properties
autostart=true
autorestart=false
stderr_logfile=/tmp/zook_stderr.log
stdout_logfile=/tmp/zook_stdout.log
- supervisorctl reload 更新的配置文件
supervisorctl
> status #查看程序狀態
> stop name #關閉name程序
> start name #啓動name程序
> restart name # 重啓name程序
> reread #讀取有更新的配置文件,不會啓動新添加的程序
> update #重啓配置文件修改過的程序