Shell脚本部署jar包
Linux 下部署 jar的脚本,以及一些采用的设置参数。
1. 目录包
"脚本" "配置" "包" "日志"
bin conf lib logo
"给启动权限"
chmod a+x startup.sh
"查看端口是否可用"
netstat -anp|grep 3306
"看日志"
tail -fn 200 **.log2. startup.sh(启动脚本)
#!/bin/bash
## confirm app dir.
DIR=$(cd `dirname $0`; cd ..; pwd)
## confirm conf dir.
CONF=$DIR/conf
## confirm lib.
JAR=$DIR/lib/spax-ec-pay-service-1.0.0.jar
## profile
PROFILE=test
## jvm配置参数
JVM="-Xms1024m -Xmx1024m -Xmn512m -Xss256k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:-UseAdaptiveSizePolicy -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -XX:+UseConcMarkSweepGC -server"
## SpringBoot 2.0 版本以上 -Dspring.config.additional-location 加载外部配置文件,以下的用 -Dspring.config.location
nohup java ${JVM} -jar $JAR -Dspring.config.additional-location=$CONF/ -Dspring.profiles.active=$PROFILE > /dev/null 2>&1 &
3. shutdown.sh(关闭脚本)
#!/bin/bash
## indexOf function.
function indexOf(){
arr=$1
local index=1
local e
for e in ${arr[*]}; do
if [ $2 = "$e" ]; then
return $index
else
(( index= index+1 ))
fi
done
return 0
}
JPS=`/opt/java/jdk1.8/bin/jps`
attr=($JPS)
indexOf "${attr[*]}" **名称.jar
ret=$?
if [ $ret != 0 ]; then
(( ret=$ret-2 ))
process=${attr[$ret]}
echo 'kill process '$process
kill -9 $process
fi
echo "finish stop!"4. PS 查询 pid
#!/bin/bash
JARFILE='名称.jar'
echo $JARFILE
ID=`ps -ef | grep "$JARFILE" | grep -v "grep" | awk '{print $2}'`
echo $ID
for id in $ID
do
kill -9 $id
echo "kill process $id"
echo "finish stop!"5. restart.sh(重新启动)
#!/bin/bash
sh shutdown.sh
sh startup.sh