一、springboot中jar包啟動停止腳本
腳本備注說明: java -jar app.jar 運作jar包
java -jar -Dspring.config.location="" app.jar 指定配置檔案運作jar包
備注:spring加載配置檔案優先級為:
Spring程式會按優先級從下面這些路徑來加載application.properties配置檔案
目前目錄下的/config目錄
目前目錄
classpath裡的/config目錄
classpath 跟目錄
#!/bin/bash
#這裡可替換為你自己的執行程式,其他代碼無需更改
APP_NAME=demo1-0.0.1-SNAPSHOT.jar
JVM="-server -Xms512m -Xmx512m -XX:PermSize=64M -XX:MaxNewSize=128m -XX:MaxPermSize=128m -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"
APPFILE_PATH="-Dspring.config.location=/usr/local/demo/config/application-demo1.properties"
#使用說明,用來提示輸入參數
usage() {
echo "Usage: sh 執行腳本.sh [start|stop|restart|status]"
exit 1
}
#檢查程式是否在運作
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在傳回1,存在傳回0
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 $JVM -jar $APPFILE_PATH $APP_NAME > /dev/null 2>&1 &
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
腳本解釋說明:
運作jar包方式:
1.java -jar XXX.jar 目前ssh視窗被鎖定,可按CTRL + C打斷程式運作,或直接關閉視窗,程式退出
2.java -jar XXX.jar & 目前ssh視窗不被鎖定,但是當視窗關閉時,程式中止運作。
3.nohup java -jar XXX.jar & nohup 意思是不挂斷運作指令,當賬戶退出或終端關閉時,程式仍然運作
4.nohup java -jar XXX.jar >temp.txt & 與3相同 日志資訊會重定向到檔案中
nohup java $JVM -jar $APPFILE_PATH $APP_NAME > /dev/null 2>&1 &
解釋說明:
nohup:不挂斷運作目前指令
java $jvm -jar $appFile $app_name 指定java虛拟機配置和yml配置運作jar包
>/dev/null 不輸出任何内容
2>&1 将标準錯誤重定向到标準輸出
& 表示視窗不被鎖定 即視窗一直顯示應用運作狀态,無法做其他事情
二、tomcat部署springboot項目遇到問題處理
1.linux環境下springboot的war和jar如何部署
war包部署:直接将war包丢在tomcat下的webapps目錄下面
或者将war包解壓 在server.xml檔案中指定通路路徑
jar包部署:直接寫腳本 運作jar檔案
2.springboot項目配置檔案外部配置
可以在運作時指定配置檔案,配置檔案存放目錄以及啟動記載優先級都有說明
3.mysql遠端主機連接配接收取
遠端mysql伺服器授權指令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.50.182' IDENTIFIED BY '123456' WITH GRANT OPTION;
4.應用已經啟動,本機可以通路,遠端不能通路,檢查端口或者防火牆設定
處理:開放端口或者關閉防火牆
開放端口:
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,沒有此參數重新開機後失效)
重新載入
firewall-cmd --reload
檢視
firewall-cmd --zone= public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent
關閉防火牆:
啟動: systemctl start firewalld
關閉: systemctl stop firewalld