前言
springboot项目打好jar包后,需要启动,分享一个写好的shell脚本方便启动,根据jdk的不同和项目的不同自行更改启动参数。
具体内容
#!/bin/bash
APP_DIR=/myDir
APP_NAME=myProject-0.0.1-SNAPSHOT.jar
usage() {
echo "Usage: sh yourScriptName.sh [start|stop|restart|status]"
exit 1
}
is_exist() {
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid}."
else
nohup java -Xms2048m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=1024m -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+PrintGCDetails -XX:+UseSerialGC -jar $APP_DIR/$APP_NAME > $APP_DIR/log/startup.log &
echo "${APP_NAME} start success"
tail -f $APP_DIR/log/startup.log
fi
}
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is not running"
fi
}
restart(){
stop
start
}
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
后记
如果把上边的代码复制到Linux,记得使用sed -i 's/\r//g' 1.sh
去除换行符。