使用crontab,定時監控 kafka進程,發現掛了后重啟。
shell腳本如下:
#!/bin/sh source /etc/profile proc_dir="/data/kafka" # 程序目錄 proc_name="kafka.Kafka" # 進程名 file_name="cron.log" # 日志文件 pid=0 proc_num() # 計算進程數 { num=`ps -ef | grep $proc_name | grep -v grep | wc -l` return $num } proc_id() # 進程號 { pid=`ps -ef | grep $proc_name | grep -v grep | awk '{print $2}'` } proc_num number=$? echo $number if [ $number -eq 0 ] # 判斷進程是否存在 then $proc_dir/kafka_2.12-2.0.0/bin/kafka-server-start.sh -daemon $proc_dir/kafka_2.12-2.0.0/config/server.properties # 重啟進程的命令,請相應修改 proc_id # 獲取新進程號 echo "server down restart..." >> $proc_dir/$file_name echo ${pid}, `date` >> $proc_dir/$file_name # 將新進程號和重啟時間記錄 fi
crontab設置如下,每一分鍾檢測一次:
[root@localhost tools]# crontab -l HELL=/bin/bash */1 * * * * sh /data/tools/kafkaRestart.sh
