Spring boot專案打包成jar在linux環境下設定開機自啟動【原創】
#!/bin/bash
# The three branches of the scouting program,Add to auto.
# chkconfig: 2345 20 80
# description: py-0.0.1-SNAPSHOT-exec.jar
# author: Love丶TG
# 這樣的啟動方式不是最好的,一般都是:友好的控制nginx執行連線埠,再處理啟動與停止操作
echo "******************************************************"
echo "******* Welcome to launch the puzzle App *************"
echo "******************************************************"
# import JDK config
JAVA_HOME=/usr/java/jdk1.8.0_111
JRE_HOME=/usr/java/jdk1.8.0_111/jre
PATH=$PATH:$JAVA_HOME/bin:$JRe_HOME/bin:$TOMCAT_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
# Second parameter : project url | PRO_URL expression
#PRO_URL=/project/py/pyapp2018-07-25
# The file stores the startup path
PRO_URL=/project/py/py_path
function initialize(){
# 判斷PRO_URL檔案是否存在,不存在就新建這麼一個檔案,用於當每次呼叫第二個引數啟動時都會隨著更改檔案裡面的內容
if [ ! -f "$PRO_URL" ]; then
touch $PRO_URL
chmod 777 $PRO_URL
fi
# 取專案的待執行目錄
readFile=`cat $PRO_URL`
if [ "$readFile" == "" ];then
echo "-----> The read file was empty and failed to start <-----"
# echo "" > $PRO_URL
# echo "$1 cleaned up."
else
echo "-----> The project is being restarted <-----"
cd $readFile
# 檢查8088 8089 8090埠是否啟動狀態
process1=`netstat -an|grep LISTEN|grep :8088`
# 如果埠檢查為空就重啟8088服務
if [ "$process1" == "" ];then
fStart 8088
echo "-----> 8088 Port started successfully <-----"
else
echo "-----> The 8088 port is running <-----"
fi
process2=`netstat -an|grep LISTEN|grep :8089`
# 如果埠檢查為空就重啟8089服務
if [ "$process2" == "" ];then
fStart 8089
echo "-----> 8089 Port started successfully <-----"
else
echo "-----> The 8089 port is running <-----"
fi
process3=`netstat -an|grep LISTEN|grep :8090`
# 如果埠檢查為空就重啟8090服務
if [ "$process3" == "" ];then
fStart 8090
echo "-----> 8090 Port started successfully <-----"
else
echo "-----> The 8090 port is running <-----"
fi
fi
}
# nohup也可新創一個函式
fStart()
{
pid=`lsof -F p -i:$1 | cut -b 2-`
if [ "$pid" != "" ];then
kill -9 $pid;
nohup java -Xmx24000m -Xss10m -jar py-0.0.1-SNAPSHOT-exec.jar --server.port=$1 &
echo "-----> $1 Port occupancy forced offline and start again <-----"
else
nohup java -Xmx24000m -Xss10m -jar py-0.0.1-SNAPSHOT-exec.jar --server.port=$1 &
echo "-----> The $1 port starting success <-----"
fi
}
fStop()
{
pid=`lsof -F p -i:$1 | cut -b 2-`
if [ "$pid" != "" ];then
kill -9 $pid;
echo "-----> $1 Port Stop success <-----"
else
echo "-----> The $1 port Has been discontinued <-----"
fi
}
case "$1" in
start)
# 如果$1等於空,這種情況下大多是伺服器重啟
if [ "$2" == "" ];then
initialize
echo "-----> Restart through boss Ben,Verification is recommended. <-----"
else
# 判斷2是否目錄為空
if [ ! -d "$2" ];then
echo "-----> The specified file directory does not exist <-----"
else
cd $2
readFile=`cat $PRO_URL`
if [ "$2" != "$readFile" ];then
echo "" > $PRO_URL
echo "$2" > $PRO_URL
fi
if [ "$3" == "" ];then
#nohup java -Xmx24000m -Xss10m -jar py-0.0.1-SNAPSHOT-exec.jar --server.port=8088 &
#nohup java -Xmx24000m -Xss10m -jar py-0.0.1-SNAPSHOT-exec.jar --server.port=8089 &
#nohup java -Xmx24000m -Xss10m -jar py-0.0.1-SNAPSHOT-exec.jar --server.port=8090 &
fStart 8088
fStart 8089
fStart 8090
else
fStart $3
fi
fi
fi
;;
stop)
# 停止不需要傳路徑 2就代表待停埠
if [ "$2" == "" ];then
# 這兒:當start啟動沒有成功執行完時,執行stop會失敗。
# 8088 8089 8090埠全部停止
fStop 8088
fStop 8089
fStop 8090
else
# 指定性埠停止
fStop $2
fi
#process=`netstat -an|grep LISTEN|grep :8088`
#process = `lsof -i:8088`
#if [ "$process" != "" ];then
# echo "JAR8088 is running"
#else
# echo "JAR8088 is not running"
#fi
;;
*)
# 如果$1等於空,這種情況下大多是伺服器重啟
#if [ "$1" == "" ];then
# initialize
#fi
echo " ---> service py_start [start|stop] [start:project path] [8088|8089|8090] <---"
;;
esac
===========================END===============================
* 注:
1. 需優化,當start剛執行就執行stop再執行start會出問題。
2. 第二個引數是版本控制jar的指定資料夾路徑
相關推薦
Spring boot專案打包成jar在linux環境下設定開機自啟動【原創】
#!/bin/bash # The three branches of the scouting program,Add to auto. # chkconfig: 2345 20 80 # description: py-0.0.1-SNAPSHOT-exec.jar #
spring boot專案打包成war 並在tomcat上執行的步驟詳解
把spring-boot專案按照平常的web專案一樣釋出到tomcat容器下 一、修改打包形式 在pom.xml裡設定 <packaging>war</packaging> 二、移除嵌入式tomcat外掛 在pom.xml裡找到spri
spring boot專案打包成war
1 pom.xml打包方式修改為war 2移除spring boot自帶的tomcat包 3新增serverlet-api(編譯階段需要) <dependency> <groupId>org.springframework
Spring Boot專案打包成docker映象
如何完成這篇教程 像大多數的Spring系列教程 Getting Started guides,你可以從頭開始,完成每一步,也可以跳過已經熟悉的基本構建步驟。 無論哪種方式,你都可以成功。 使用maven構建 首先你得安裝構建指令碼. 你可以使用你喜歡的構建系
IDEA把spring-boot專案打包成jar
1.開啟專案,然後右擊專案選中‘Open Module Settings’進入project Structure( 快捷鍵 Ctrl+Shift+Alt+S或者File->Project Stru
spring boot專案打包成war並在tomcat上執行的步驟
原文地址:http://m.blog.csdn.net/article/details?id=52515226 把spring-boot專案按照平常的web專案一樣釋出到tomcat容器下 一、修改打包形式 在pom.xml裡設定 <packaging>
spring-boot專案在外部tomcat環境下部署
spring-boot預設提供內嵌的tomcat,所以打包直接生成jar包,用java -jar命令就可以啟動。但是,有時候我們更希望一個tomcat來管理多個專案,這種情況下就需要專案是war格式的包而不是jar格式的包。spring-boot同樣提供瞭解決方
在IDEA中如何將Spring boot專案打包成可執行的jar包併發布到linux伺服器
這兩年微服務很流行,這裡簡單介紹一下如何將自己使用idea寫的微服務打包成一個可執行的jar包,併發布到linux伺服器的步驟。因為spring boot有內建的tomcat所以一般使用內建的tomcat就可以可,當然也使用外部的tomcat容器。 如有疑問可
ubuntu下設定開機自啟動項
Ubuntu 不像 RedHat 或者 CentOS 那樣有開機啟動配置器 ntsysv 但其也有個很方便的工具:rcconf 不過需要另外安裝 安裝方式:sudo apt-get install rcconf 完成後在命令狀態下輸入:sudo rcconf 即可 執行介面跟紅帽子的 ntsy
IDEA下spring boot專案打包war包部署外部tomcat問題
最近需要把開發的spring boot專案打包部署到雲伺服器上,自己先把專案部署到本地的tomcat上執行,結果發現怎麼部署都會報錯。現在特別整理了所有部署流程。以幫助大家解決問題。前提是你得保證你得spring boot專案在idea上能跑起來,並且訪問到伺服器,下面直接重
將 Spring boot 專案打成可執行Jar包,及相關注意事項(main-class、缺少 xsd、重複打包依賴)
最近在看 spring boot 的東西,覺得很方便,很好用。對於一個簡單的REST服務,都不要自己部署Tomcat了,直接在 IDE 裡 run 一個包含 main 函式的主類就可以了。 但是,轉念一想,到了真正需要部署應用的時候,不可能通過 IDE 去部署
Spring boot專案打包部署到伺服器
為什麼要把SpringBoot打成war包 正常情況下SpringBoot專案是以jar包的形式,通過命令列: java -jar demo.jar 來執行的,並且SpringBoot是內嵌Tomcat伺服器,所以每次重新啟動都是用的新的Tomcat伺服器。正
spring boot專案配置多個環境
比如我的spring boot專案有開發(dev)、測試(test)、生產(prod)三個環境,需要有三套對應的配置檔案。如下 在專案裡application.yml為主配置檔案,另外三個分別對應
在IDEA中如何將多模組Spring boot專案打包
SpringBoot就是一個內嵌WEB伺服器(tomcat/jetty)可執行程式的框架。 所以開發的web應用不需要作為war包部署到web伺服器中,而是作為一個可執行程式,可執行的jar包部署就可以了。 專案的釋出: 1.修改父模組pom檔案 去掉maven打包
spring boot專案打成war包
1 pom檔案中將打包形式 jar 修改為war <packaging>war</packaging> 2 不使用自帶的tomcat <dependency> <groupId>org.spri
spring boot 專案打成war包部署到伺服器
這是spring boot學習的第二篇了,在上一篇已經整合了spring boot專案了,如果還有小夥伴沒有看得可以先去看第一篇 到這裡的小夥伴應該都是會整合基本的spring boot專案 ,並且可以在本地工具上執行訪問了,如果還做不到的,說明你沒有用心哦o( ̄ヘ ̄o#)
Spring Boot通過Profiles實現多環境下配置切換
1、在yml中使用pom定義的maven屬性變數 格式:@[email protected] spring: application: name: dream-web-gateway profiles: active: '@[
在Eclipse中如何將spring boot專案打成的jar包,並且雙擊執行cmd 執行jar包,設定開機啟動
1、如何在eclipse中將spring boot專案打成jar包 1.右擊專案,選擇Run As - Maven clean 2.右擊專案,選擇Run As - Maven install 3.成功後 會在專案的target資料夾下生成jar包 2、直接雙擊執行cm
spring boot 專案打包,配置構建外掛
Spring Boot:jar中沒有主清單屬性 使用Spring Boot微服務搭建框架,在eclipse和Idea下能正常執行,但是在打成jar包部署或者直接使用java -jar命令的時候,提示了xxxxxx.jar中沒有主清單屬性: D:\hu-git\spr
將Spring boot應用打包成映象放到docker中執行
學習docker,需要把專案打包成映象,所以第一步首先得把專案打成war包,這樣才能丟上去。 打包成war 這一步在傳統java web專案中看起來非常簡單一步,但是Spring boot卻有小許不同。 增加SpringBootServletIni