rocketmq4.3.x启动脚本

在rocketmq根目录下新建run.sh文件,输入一下内容:

  1 #!/bin/bash
  2 
  3 #获得输入参数
  4 OPTION=$1
  5 MODULE_NAME=$2
  6 NODE_NAME=$3
  7 
  8 # 执行脚本名称
  9 BIN_NAME=run.sh
 10 # 当前执行路径
 11 WORK_DIR=`pwd`
 12 # 控制台日志文件夹
 13 LOG_DIR=${WORK_DIR}/logs
 14 
 15 #帮助函数
 16 useage(){
 17   echo "useage: ${BIN_NAME} option [module] [node]"
 18   echo "option:"
 19   echo "    start   :"
 20   echo "        namesrv:"
 21   echo "        broker :"
 22   echo "            broker-a  : 2m-2s-async master node a"
 23   echo "            broker-a-s: 2m-2s-async slave node a-s"
 24   echo "            broker-b  : 2m-2s-async master node b"
 25   echo "            broker-b-s: 2m-2s-async slave node b-s"
 26   echo "    stop    :"
 27   echo "        namesrv: 域名服务"
 28   echo "        broker : Broker服务"
 29   echo "    status  : 查看组件状态"
 30 }
 31 
 32 # 初始化路径
 33 init() {
 34   mkdir -p ${LOG_DIR}
 35 }
 36 
 37 # 启动broker
 38 startbroker(){
 39     local pid=`ps ax | grep -i 'org.apache.rocketmq.broker.BrokerStartup' |grep java | grep -v grep | awk '{print $1}'`
 40     if [ -z "$pid" ] ; then
 41         echo "Starting mqbroker ${NODE_NAME}...."
 42     else
 43         echo "The mqbroker(${pid}) is running. Stop it first if you persist."
 44         exit -1;
 45     fi
 46     `nohup sh ${WORK_DIR}/bin/mqbroker -c ${WORK_DIR}/conf/2m-2s-async/${NODE_NAME}.properties -> logs/mq${NODE_NAME}.log 2>&1 &`
 47     echo "Send start request to mqbroker OK. logfile: ~/logs/rocketmqlogs/broker.log"
 48 }
 49 
 50 # 启动namesrv
 51 startnamesrv(){
 52     local pid=`ps ax | grep -i 'org.apache.rocketmq.namesrv.NamesrvStartup' |grep java | grep -v grep | awk '{print $1}'`
 53     if [ -z "$pid" ] ; then
 54         echo "Starting namesrv...."
 55     else
 56         echo "The mqnamesrv(${pid}) is running. Stop it first if you persist."
 57         exit -1;
 58     fi
 59     `nohup sh ${WORK_DIR}/bin/mqnamesrv -> logs/mqnamesrv.log 2>&1 &`
 60     echo "Send start request to mqnamesrv OK. logfile: ~/logs/rocketmqlogs/namesrv.log"
 61 }
 62 
 63 # 停止broker
 64 stop(){
 65     $WORK_DIR/bin/mqshutdown $MODULE_NAME
 66 }
 67 
 68 status(){
 69     local namesrv_pid=`ps ax | grep -i 'org.apache.rocketmq.namesrv.NamesrvStartup' |grep java | grep -v grep | awk '{print $1}'`
 70     if [ -z "$namesrv_pid" ] ; then
 71         echo -e "namesrv: \033[31m inactive \033[0m"
 72     else
 73         echo -e "namesrv: \033[32m active \033[0m (pid=$namesrv_pid)"
 74     fi
 75     local broker_pid=`ps ax | grep -i 'org.apache.rocketmq.broker.BrokerStartup' |grep java | grep -v grep | awk '{print $1}'`
 76     if [ -z "$broker_pid" ] ; then
 77         echo -e "broker:  \033[31m inactive \033[0m"
 78     else
 79         echo -e "broker:  \033[32m active \033[0m (pid=$broker_pid)"
 80     fi
 81 }
 82 
 83 # 脚本执行入口
 84 init
 85 # 正式执行
 86 case $OPTION in
 87     start)
 88 
 89     case $MODULE_NAME in
 90         namesrv)
 91 
 92         startnamesrv
 93         ;;
 94         broker)
 95 
 96         startbroker
 97         ;;
 98         *)
 99         echo "Invalid command: missing module."
100         useage
101     esac
102     ;;
103     stop)
104 
105     stop
106     ;;
107     status)
108 
109     status
110     ;;
111     *)
112     useage
113     echo "Invalid option. Please refer to the useage."
114 esac

当前脚本设定broker启动参数为2m-2s-async目录下对应的broker-a.properties、broker-a-s.properties、broker-b.properties、broker-b-s.properties

新增完成后赋予执行权限: chmod +7 run.sh

执行样例:

 

posted @ 2022-09-14 18:33  Carliels  阅读(174)  评论(0)    收藏  举报