1. 程式人生 > >linux(centos6.5)下部署springboot jar包用 *.sh 檔案啟動專案並將專案做成開機自啟動服務

linux(centos6.5)下部署springboot jar包用 *.sh 檔案啟動專案並將專案做成開機自啟動服務

版權宣告:轉載請註明出處。 原文作者:[email protected] 原文連結:https://blog.csdn.net/weixin_42389328/article/details/83104214

第一種方法:非自啟動方式

1.如果你使用的是maven來管理專案,執行以下命令進行專案打包:

cd 專案跟目錄(和pom.xml同級)
mvn clean package
## 或者執行下面的命令
## 排除測試程式碼後進行打包
mvn clean package  -Dmaven.test.skip=true

執行後會在專案更目錄下生成一個target檔案會生成一個*.jar 檔案,這樣打包就完成了,接下來在linux下部署

2.將jar檔案傳到linux目錄下(這裡我建立了一個java資料夾)

cd /java #切換到java 目錄下
vim /java/start.sh  #在java目錄下建立start.sh 檔案
vi /java/start.sh # 執行此命令對start.sh 檔案進行編輯
 寫入下列內容:
#!/bin/sh

rm -f tpid
APP_NAME=familySign
APP_JAR=$APP_NAME".jar"
nohup java -Dfile.encoding=UTF-8 -jar $APP_JAR --spring.config.location=application.properties  > ./logs/$APP_NAME".log" 2>&1 &
echo $! > $APP_NAME".tpid"
echo $APP_NAME Start Success!

編輯完成後 點選ESC鍵退出 
輸入 :wq 退出儲存
給檔案賦予執行權:
chmod a+x start.sh
chmod a+x familySign.jar 
在java目錄下執行 start.sh 檔案
[
[email protected]
java]# ./start.sh familySign Start Success! 專案啟動成功

在此需要注意的是:logs資料夾要手動建立。不然無法正常 執行。

如果專案停止專案執行:

在java目錄下建立stop.sh 檔案
[[email protected] ~]# cd /java
[[email protected] java]# vim /java/stop.sh
寫入下列內容
#!/bin/sh
APP_NAME=familySign

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stopping' $APP_NAME '...'
    kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill' $APP_NAME 'Process!'
    kill -9 $tpid
else
    echo $APP_NAME 'Stoped Success!'
fi
寫入完成點選ESC鍵退出編輯
輸入 :wq 退出儲存檔案
執行如下命令給stop.sh 檔案賦予執行
chmod a+x stop.sh
執行stop.sh 檔案
[
[email protected]
java]# ./stop.sh Stopping familySign ... 專案停止執行成功

chmod a+x 檔名 a 是指賦予所用使用者執行權

到這裡專案的的打包部署就完成了。

第二種方式 :開機自啟動服務

1.將專案執行新增為開機自啟動服務:

[[email protected] ~]# cd /etc/init.d
[[email protected] init.d]# vim /etc/init.d/autostart
#!/bin/sh
#chkconfig: 2345 80 90
rm -f tpid
APP_NAME=/java/familySign_API/familySign  #jar 包路徑 根據自己的修改
APP_JAR=$APP_NAME".jar"

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_171
export JRE=/usr/lib/jvm/jdk1.8.0_171/jre
export CLASSPATH=$JAVAHOME/lib:$JRE/lib:.
export PATH=$PATH:$JAVA_HOME/bin:$JRE/bin 

nohup java -Dfile.encoding=UTF-8 -jar $APP_JAR --spring.config.location=/java/familySign_API/application.properties  > /java/familySign_API/logs/familySign".log" 2>&1 &

echo $! > $APP_NAME".tpid"

echo $APP_NAME Start Success!
同上編輯完成儲存退出
chmod a+x autostart  
賦予執行權
執行如下命令將autostart新增為自啟服務
chkconfig --add autostart   # (首先,新增為系統服務,注意add前面有兩個橫槓)

chkconfig  autostart  on #開機自啟
chkconfig --list (列表顯示)檢視是否新增到服務列表
service autostart  start(啟動服務,就是執行my的指令碼)
/java/familySign_API/familySign Start Success!
專案執行成功。


export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_171
export JRE=/usr/lib/jvm/jdk1.8.0_171/jre
export CLASSPATH=$JAVAHOME/lib:$JRE/lib:.
export PATH=$PATH:$JAVA_HOME/bin:$JRE/bin 

這個部分為jdk 環境變數,依據自己的安裝目錄進行更改即可;

可以重啟伺服器試試看是否啟動成功。