#!/bin/bash
SERVER_NAME='spring-vue'
# jar名稱
JAR_NAME='springboot-vue.jar'
cd `dirname $0`
BIN_DIR=`pwd`
cd ..
DEPLOY_DIR=`pwd`
CONF_DIR=$DEPLOY_DIR/config
# SERVER_PORT=`sed '/server.port/!d;s/.*=//' config/application.properties | tr -d '\r'`
# 獲取應(yīng)用的端口號
SERVER_PORT=`sed -nr '/port: [0-9]+/ s/.*port: +([0-9]+).*/\1/p' config/application.yml`
PIDS=`ps -f | grep java | grep "$CONF_DIR" |awk '{print $2}'`
if [ "$1" = "status" ]; then
if [ -n "$PIDS" ]; then
echo "The $SERVER_NAME is running...!"
echo "PID: $PIDS"
exit 0
else
echo "The $SERVER_NAME is stopped"
exit 0
fi
fi
if [ -n "$PIDS" ]; then
echo "ERROR: The $SERVER_NAME already started!"
echo "PID: $PIDS"
exit 1
fi
if [ -n "$SERVER_PORT" ]; then
SERVER_PORT_COUNT=`netstat -tln | grep $SERVER_PORT | wc -l`
if [ $SERVER_PORT_COUNT -gt 0 ]; then
echo "ERROR: The $SERVER_NAME port $SERVER_PORT already used!"
exit 1
fi
fi
LOGS_DIR=$DEPLOY_DIR/logs
if [ ! -d $LOGS_DIR ]; then
mkdir $LOGS_DIR
fi
STDOUT_FILE=$LOGS_DIR/stdout.log
JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "
JAVA_DEBUG_OPTS=""
if [ "$1" = "debug" ]; then
JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "
fi
JAVA_JMX_OPTS=""
if [ "$1" = "jmx" ]; then
JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
fi
JAVA_MEM_OPTS=""
BITS=`java -version 2>&1 | grep -i 64-bit`
if [ -n "$BITS" ]; then
JAVA_MEM_OPTS=" -server -Xmx512m -Xms512m -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
else
JAVA_MEM_OPTS=" -server -Xms512m -Xmx512m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
fi
CONFIG_FILES=" -Dlogging.path=$LOGS_DIR -Dlogging.config=$CONF_DIR/log4j2.xml -Dspring.config.location=$CONF_DIR/application.properties "
echo -e "Starting the $SERVER_NAME ..."
nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS $CONFIG_FILES -jar $DEPLOY_DIR/lib/$JAR_NAME > $STDOUT_FILE 2>&1 &
COUNT=0
while [ $COUNT -lt 1 ]; do
echo -e ".\c"
sleep 1
if [ -n "$SERVER_PORT" ]; then
COUNT=`netstat -an | grep $SERVER_PORT | wc -l`
else
COUNT=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}' | wc -l`
fi
if [ $COUNT -gt 0 ]; then
break
fi
done
echo "OK!"
PIDS=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}'`
echo "PID: $PIDS"
echo "STDOUT: $STDOUT_FILE"
腳本用例:
# 啟動應(yīng)用
./start.sh
# 以debug方式啟動
./start debug
# 啟動任務(wù)并開啟jmx監(jiān)控
./start jmx
# 獲取當前的運行狀態(tài)
./start status
停止腳本:stop.sh
#!/bin/bash
cd `dirname $0`
BIN_DIR=`pwd`
cd ..
DEPLOY_DIR=`pwd`
CONF_DIR=$DEPLOY_DIR/config
SERVER_NAME=$DEPLOY_DIR
PIDS=`ps -ef | grep java | grep "$CONF_DIR" |awk '{print $2}'`
if [ -z "$PIDS" ]; then
echo "ERROR: The $SERVER_NAME does not started!"
exit 1
fi
if [ "$1" != "skip" ]; then
$BIN_DIR/dump.sh
fi
echo -e "Stopping the $SERVER_NAME ...\c"
for PID in $PIDS ; do
kill $PID > /dev/null 2>&1
done
COUNT=0
while [ $COUNT -lt 1 ]; do
echo -e ".\c"
sleep 1
COUNT=1
for PID in $PIDS ; do
PID_EXIST=`ps -f -p $PID | grep java`
if [ -n "$PID_EXIST" ]; then
COUNT=0
break
fi
done
done
echo "OK!"
echo "PID: $PIDS"
使用shell腳本方式啟動springboot的可執(zhí)行jar
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門谷遂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人卖鲤,你說我怎么就攤上這事肾扰。” “怎么了蛋逾?”我有些...
- 文/不壞的土叔 我叫張陵集晚,是天一觀的道長。 經(jīng)常有香客問我区匣,道長偷拔,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任稽鞭,我火速辦了婚禮惯疙,結(jié)果婚禮上吼畏,老公的妹妹穿的比我還像新娘。我一直安慰自己蛤签,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布栅哀。 她就那樣靜靜地躺著顷啼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪昌屉。 梳的紋絲不亂的頭發(fā)上钙蒙,一...
- 文/蒼蘭香墨 我猛地睜開眼屹篓,長吁一口氣:“原來是場噩夢啊……” “哼疙渣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起堆巧,我...
- 正文 年R本政府宣布非凌,位于F島的核電站,受9級特大地震影響荆针,放射性物質(zhì)發(fā)生泄漏敞嗡。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一航背、第九天 我趴在偏房一處隱蔽的房頂上張望喉悴。 院中可真熱鬧,春花似錦玖媚、人聲如沸箕肃。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽勺像。三九已至,卻和暖如春错森,著一層夾襖步出監(jiān)牢的瞬間吟宦,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 想必是沒有人會不喜歡花的踏幻。我尤其愛花。 春天正是賞花的好時節(jié)戳杀,每個周末都會去公園或郊外走一走该面。 三月初夭苗,迎春花剛剛...
- 收到三月魚老師寄來的書《姑娘蚕泽,你野心勃勃的樣子,真美》桥嗤,手捧封面設(shè)計精美獨特须妻,有三月魚老師親筆簽名的書籍,歡喜之余...
- 前段時間看到一則新聞: 家住大連的62歲周奶奶,兒子王先生身體殘疾执俩,平時跟妻子靠擺攤兒賣咸菜為生徐钠,收入很低。周奶奶...
- 1. 定義你的受眾役首。 利用標準人口統(tǒng)計特寫尝丐,你的內(nèi)容策略就能建立在堅實的基礎(chǔ)上。通過確定年齡衡奥、性別爹袁、婚姻狀況以及收...
- 做為長期奮斗在一線的英語教師,我想繼續(xù)奉獻自己一份綿薄之力辰晕,做為二胎寶媽蛤迎,我想?yún)⑴c到孩子的成長過程中來! 但是我同...