shell脚本安装activemq样例

自定义参数

ACTIVEMQ_NAME= #服务全名
ACTIVEMQ_PATH= #安装路径
TEMP_PATH= #临时目录
USER_NAME= #启动用户

部署参数检查

#!/bin/bash

# 检查参数是否设置
echo "=====检查参数是否设置====="
if [ ! $ACTIVEMQ_PATH ];then
	echo "=====$ACTIVEMQ_PATH 此参数未设置,请检查!====="
    exit 1
fi

if [ ! $ACTIVEMQ_NAME ];then
	echo "=====$ACTIVEMQ_NAME 此参数未设置,请检查!====="
    exit 1
fi

if [ ! $TEMP_PATH ];then
	echo "=====$TEMP_PATH 此参数未设置,请检查!====="
    exit 1
fi

isServerExist=$(ps -ef | grep activemq | grep -v grep | awk '{print $2}' | wc -l)

# 检查服务是否已经安装
echo "=====检查服务是否已经安装====="
if [ "${isServerExist}" != "0" ]; then
    echo "activemq 服务已启动,请先卸载"  
    exit 1
else
    echo "activemq 服务未启动,符合预期!" 
fi

# 检查目标目录是否存在
echo "检查目标目录是否存在====="
if [ ! -d $ACTIVEMQ_PATH ];then
	echo "=====$ACTIVEMQ_PATH 目录不存在,创建目录====="
	mkdir -p $ACTIVEMQ_PATH
else
    echo "=====$ACTIVEMQ_PATH 目录已存在,退出安装====="
    exit 1
fi

 echo "=====部署前检查通过====="

上传解压安装包

#!/bin/bash

echo "=====解压安装包到指定目录====="
unzip -o ${ACTIVEMQ_NAME}.zip -d  $ACTIVEMQ_PATH
echo "=====查看解压后的内容====="
ls $ACTIVEMQ_PATH/$ACTIVEMQ_NAME

设置启停脚本+启动

#!/bin/bash

# 对目录进行授权
echo "=====对目录进行授权====="
cd  $ACTIVEMQ_PATH && chmod 755 -R *

sed -i 's/tcp:\/\/0.0.0.0:51616/tcp:\/\/0.0.0.0:61616/g' ${ACTIVEMQ_NAME}/conf/activemq.xml
sed -i 's/nio:\/\/0.0.0.0:51617/tcp:\/\/0.0.0.0:61617/g' ${ACTIVEMQ_NAME}/conf/activemq.xml

chown -R ${USER_NAME}:${USER_NAME} $ACTIVEMQ_PATH
echo "=====开始设置启动脚本====="
# 设置启动脚本
cat > /usr/lib/systemd/system/activemq.service <<-EOF
[Unit]
Description=ActiveMQ service
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/local/jdk
ExecStart=$ACTIVEMQ_PATH/$ACTIVEMQ_NAME/bin/activemq start
ExecStop=$ACTIVEMQ_PATH/$ACTIVEMQ_NAME/bin/activemq stop
User=${USER_NAME}
Group=${USER_NAME}
Restart=always
RestartSec=9
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=activemq
[Install]
WantedBy=multi-user.target
EOF
echo "=====启动并设置开机自启====="
systemctl daemon-reload
systemctl start activemq.service
systemctl enable activemq.service
echo "=====启停方式:systemctl start|stop|restart activemq====="

#按照进程判断,默认启动时间2分钟,判断两次,按需修改循环次数
echo "=====开始判断服务是否已启动成功====="
    for((i=1;i<=12;i++));
    do
        sleep 10
        ISSTART=$(ps -ef | grep activemq | grep -v grep | awk '{print $2}' | wc -l)
        if [ "$ISSTART" != "0" ]; then
            echo "发现服务进程,为确保服务真正启动成功,等待15秒后进行第二次判断!"
                sleep 15
                ISSTART=$(ps -ef | grep activemq | grep -v grep | awk '{print $2}' | wc -l)
                if [ "$ISSTART" != "0" ]; then
                    echo "等待15秒后进程仍存活,服务第二次判断通过,服务启动成功!"
                    exit 0
                else
                    echo "等待15秒后进程未找到,服务第二次判断失败,服务启动失败!"
                    exit 1
                fi
        else
            echo "服务启动中,请等待!"
        fi
    done
    echo "等待2分钟后未发现服务进程,服务启动失败!"
    exit 1

清理临时目录安装包

#!/bin/bash

rm -rf ${TEMP_PATH}
mkdir -p ${TEMP_PATH}

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值