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
执行样例:


浙公网安备 33010602011771号