shell脚本如何 重启进程?

UID PID PPID C STIME TTY TIME CMD
root 3506 3020 0 10:14 pts/1 00:00:05 php /www/yii kafka/consume

我需要对这个kafka进行定时重启,脚本要怎么守护,麻烦指教

##############################Deploy crontab for yechang ad*******eta restart ########################
echo "start deploy crontab for yechang ad*********a restart"
#早上9点对ad********a进程进行重启操作
 
if [ $pac*******ver = 'yechang' ];then
     cp -r $PACKAGE_DIR/yechang_ad*******_restart.sh /data/sh/
     chmod +x /data/sh/*
 
    if [ `grep -v '^\s*#' /var/spool/cron/root |grep -c 'yechang_ad****8er'` -eq 0 ];then
           echo "0 9 * * * sh /data/sh/yechang_a*******restart.sh > /dev/null 2>&1" >> /var/spool/cron/root
 
    fi
fi
阅读 1.9k
1 个回答
#!/bin/bash

# 设置 Kafka 进程 ID 和重启间隔(单位:秒)
KAFKA_PID=$(pgrep kafka/consume)
RESTART_INTERVAL=3600

# 检查 Kafka 进程是否在运行
if [ -z "$KAFKA_PID" ]; then
  echo "Kafka 进程未启动。"
else
  # 停止 Kafka 进程
  echo "停止 Kafka 进程(PID:$KAFKA_PID)..."
  kill -TERM $KAFKA_PID
  sleep 5

  # 确认 Kafka 进程已经停止
  if ps -p $KAFKA_PID > /dev/null; then
    echo "无法停止 Kafka 进程(PID:$KAFKA_PID)!"
    exit 1
  fi

  # 启动 Kafka 进程
  echo "启动 Kafka 进程..."
  php /www/yii kafka/consume &

  # 检查 Kafka 进程是否已经启动
  if [ $? -ne 0 ]; then
    echo "无法启动 Kafka 进程!"
    exit 1
  fi
fi

# 等待重启间隔时间
sleep $RESTART_INTERVAL

# 重新执行脚本以进行下一次重启
$0
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题