java服务启动脚本

简介

在/usr/local/jar 目录存放jar包和启动脚本,复制脚本先按日期创建目录,然后将jar包和启动脚本复制到日期目录并启动服务

复制脚本start-cms.sh

#!/bin/bash

# 打包成jar包时的名字
service_name='my-cms'
jar_name=${service_name}'.jar'

# jar包存放目录
jar_source_dir='/usr/local/jar/'
# 启动目录,这个目录下面创建日期文件夹
jar_destination='/usr/local/cms/'
# 服务启动脚本
sh_name='cms-pro.sh'

cur_date=$(date "+%Y-%m-%d")

jar_source=${jar_source_dir}${jar_name}
sh_source=${jar_source_dir}${sh_name}
info_txt=${jar_source_dir}${service_name}'.txt'

echo  '今天日期'$cur_date

cd $jar_destination
# 统计当前文件夹下当前日期目录的个数
dir_num=`find $jar_destination -maxdepth 1 -type d -name ${cur_date}\* |wc -l`

echo  ${cur_date}'文件数量'${dir_num}

dir=${cur_date}'_'${dir_num}
echo '创建文件夹'$dir
sudo mkdir $dir
cd $dir
sudo cp ${jar_source} ${jar_name}
sudo cp ${sh_source} ${sh_name}
sudo sh ${sh_name}

echo "============================= 所在目录 =============================" > ${info_txt}
echo 'cd '${jar_destination}${dir} >> ${info_txt}

sleep 2


# log 所在目录
info_log=${jar_destination}${dir}'/logs/info-latest.log'

echo "============================= log文件 =============================" >> ${info_txt}
echo 'less '${info_log} >> ${info_txt}

echo "=============================  ============================="
tail -f ${info_log}

服务启动脚本cms-pro.sh

#!/bin/bash
env='pro2'
service_name="my-cms"
jar=${service_name}".jar"
log=${service_name}"_start.log"

cur_time=`date +%Y-%m-%d/%H:%M:%S`
PID=$(ps -ef|grep $jar|grep -v grep|awk '{print $2}')
echo start:=====================$cur_time====================== >> $log
if [ -n "$PID" ]; then
        echo exists:$PID >> $log
        ls -l /proc/$PID/cwd >> $log
        kill -9 $PID
        echo kill $PID successful >> $log
else
        echo jar is not running >> $log
fi
nohup java -jar $jar --spring.profiles.active=${env} \
-Xms2048m \
-Xmx2048m \
-Xss256k \
-XX:MaxDirectMemorySize=256m \
-XX:+UseG1GC \
-XX:+UseCompressedOops \
-XX:+UseCompressedClassPointers \
-XX:+SegmentedCodeCache \
-verbose:gc \
-XX:+PrintCommandLineFlags \
-XX:+ExplicitGCInvokesConcurrent \
-XX:+PrintGCDetails \
-Djava.security.egd=file:/dev/./urandom \
-Xlog:gc*,safepoint:/data/log/$service_name/gc.log:time,uptime:filecount=1000,filesize=300M > /dev/null 2> nohup.out &
# -Xlog:gc*,safepoint:/data/log/$service_name/gc.log:time,uptime:filecount=1000,filesize=300M > nohup.out 2>&1&
echo end:=======================$cur_time====================== >> $log
echo success,start detail in $log

# Xms 堆内存的最小Heap值,默认为物理内存的1/64,但小于1G。 Xmx 堆内存的最大Heap值,默认为物理内存的1/4。官方建议两值相等

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值