代码语言:javascript复制
#!/bin/bash
ENV_FILE=~/.bash_profile
# 判断是否有bash_profile文件
if [ ! -f "${ENV_FILE}" ]; then
source ${ENV_FILE}
fi
##java env
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin
kafka_home_log=/data/SW/kafka/logs
kafka_home=/usr/local/sw/cluster/kafka
startApp="$kafka_home/bin/kafka-server-start.sh -daemon $kafka_home/config/server.properties"
# 停止Kafka服务
function stop(){
echo "stopping kafka"
SIGNAL=${SIGNAL:-TERM}
PIDS=$(ps ax | grep java | grep -i Kafka | grep -v grep | awk '{print $1}')
if [ -z "$PIDS" ]; then
echo "No kafka server to stop"
exit 1
else
kill -s $SIGNAL $PIDS
cleanlog
fi
echo "stoped success"
}
# 启动Kafka服务
function start(){
echo "starting kafka"
# $startApp
COMMAND=$(ps ax | grep java | grep -i Kafka | grep -v grep | awk '{print $1}')
for((i=1;i<=5;i ));
do
if [[ $COMMAND -le 0 ]]; then
$startApp
echo "start $i times"
sleep 10s
else
echo "process alived"
break
fi
done
echo "started sucess"
}
# 重启kafka服务
function restart(){
echo "restarting kafka"
echo "kafka process is $(ps ax | grep java | grep -i Kafka | grep -v grep | awk '{print $1}')"
stop
sleep 10s
start
echo "kafka process is $(ps ax | grep java | grep -i Kafka | grep -v grep | awk '{print $1}')"
echo "restarted success"
}
function cleanlog(){
echo "删除kafka的临时目录$kafka_home_log"
# 删除kafka的临时目录
rm $kafka_home_log/* -rf
echo "done 删除kafka的临时目录"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
* )
echo "no command"
;;
esac
exit 0