linux下springboot專案jar包部署
阿新 • • 發佈:2018-12-18
一、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