欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux將Spring Boot項(xiàng)目的Jar包注冊為開機(jī)自啟動(dòng)系統(tǒng)服務(wù)的操作方法

 更新時(shí)間:2023年10月26日 12:04:14   作者:楊若瑜  
jar文件是從maven package打包出來的,config/application.yml是原先在項(xiàng)目的resources文件夾里,外置出來方便適配開發(fā)環(huán)境和正式環(huán)境,這篇文章主要介紹了Linux將Spring Boot項(xiàng)目的Jar包注冊為開機(jī)自啟動(dòng)系統(tǒng)服務(wù)的操作方法,需要的朋友可以參考下

有時(shí)候我們需要將Spring Boot打包出來jar文件當(dāng)做系統(tǒng)服務(wù)注冊到系統(tǒng)中,本文教你如何操作

目錄結(jié)構(gòu)

以下是目錄結(jié)構(gòu),jar文件是從maven package打包出來的,config/application.yml是原先在項(xiàng)目的resources文件夾里,外置出來方便適配開發(fā)環(huán)境和正式環(huán)境。static目錄用來存放靜態(tài)資源,比如vue前端或者上傳目錄。所有的.sh文件都是本文后續(xù)要寫的。

/data
	/start.sh 						   // 啟動(dòng)腳本
	/stop.sh						   // 關(guān)閉腳本
	/serviceStart.sh				   // 服務(wù)啟動(dòng)腳本
	/serviceStop.sh 				   // 服務(wù)關(guān)閉腳本
	/YumeisoftDemo-0.0.1-SNAPSHOT.jar  // 打包的項(xiàng)目Jar包
	/config							   // 配置文件目錄
		/application.yml			   // 項(xiàng)目配置文件
	/jdk							   // jdk目錄
	/static							   // 靜態(tài)資源目錄

編寫Service調(diào)用的腳本

配置腳本/data/config.sh,如果改包名,直接改這個(gè)文件即可

#!/bin/sh
# 配置JAR文件名,把它改成你的Jar文件名
SPRING_JARFILE=YumeisoftDemo-0.0.1-SNAPSHOT.jar
# 日志文件位置
LOG_FILE=system.log
# 獲取.sh所在路徑
INSTALL_DIR=$(cd $(dirname $0);pwd)
# 配置JDK路徑
JAVA_HOME=$INSTALL_DIR/jdk
# 設(shè)定PATH,不設(shè)會(huì)無法使用java命令
PATH=$JAVA_HOME/bin:$PATH

手動(dòng)啟動(dòng)服務(wù)腳本/data/start.sh,其中system.log是日志文件名

#!/bin/sh
# 讀取config.sh定義的內(nèi)容
source $INSTALL_DIR/config.sh
# 后臺(tái)方式運(yùn)行jar包
nohup java -jar $INSTALL_DIR/$SPRING_JARFILE > $INSTALL_DIR/$LOG_FILE 2>&1 &
# 顯示日志
tail -f $INSTALL_DIR/$LOG_FILE

手動(dòng)關(guān)閉服務(wù)腳本/data/stop.sh

#!/bin/sh
# 讀取config.sh定義的內(nèi)容
source $INSTALL_DIR/config.sh
# 獲取當(dāng)前項(xiàng)目運(yùn)行的進(jìn)程ID
PID=$(ps -ef | grep "java -jar $INSTALL_DIR/$SPRING_JARFILE" | grep -v grep | awk '{print $2}')

if [ -z "$PID" ]; then
	# 如果沒找到則提示未運(yùn)行
    echo "Spring Boot應(yīng)用未在運(yùn)行中."
else
	# 如果找到了,正常終止進(jìn)程
    kill $PID
    # 顯示日志
    tail -f $INSTALL_DIR/$LOG_FILE
    echo "Spring Boot應(yīng)用已停止."
fi

服務(wù)啟動(dòng)腳本/data/serviceStart.sh

#!/bin/sh
# 讀取config.sh定義的內(nèi)容
source $INSTALL_DIR/config.sh
# 后臺(tái)方式運(yùn)行jar包
nohup java -jar $INSTALL_DIR/$SPRING_JARFILE > $INSTALL_DIR/$LOG_FILE 2>&1 &

服務(wù)關(guān)閉腳本/data/serviceStop.sh

#!/bin/sh
# 讀取config.sh定義的內(nèi)容
source $INSTALL_DIR/config.sh
# 獲取當(dāng)前項(xiàng)目運(yùn)行的進(jìn)程ID
PID=$(ps -ef | grep "java -jar $INSTALL_DIR/$SPRING_JARFILE" | grep -v grep | awk '{print $2}')

if [ -z "$PID" ]; then
	# 如果沒找到則提示未運(yùn)行
    echo "Spring Boot應(yīng)用未在運(yùn)行中."
else
	# 如果找到了,正常終止進(jìn)程
    kill $PID
    echo "Spring Boot應(yīng)用已停止."
fi

賦權(quán)

不賦權(quán)是無法運(yùn)行的,所以我們要執(zhí)行以下命令:

chmod a+x /data/*.sh

創(chuàng)建一個(gè)Service

接下來我們把這個(gè)項(xiàng)目注冊為系統(tǒng)服務(wù),myService改成你要改成的服務(wù)名:

vim /etc/systemd/system/myService.service

因?yàn)橹皼]有這個(gè)系統(tǒng)服務(wù),會(huì)創(chuàng)建一個(gè)新文件,這個(gè)文件就是系統(tǒng)服務(wù)的啟停配置文件,按一下a進(jìn)入編輯模式,把下面的代碼粘貼上去,然后按下Esc、冒號、輸入wq、回車。

[Unit]
Description=MyService
After=network.target
[Service]
Type=forking
ExecStart=/data/serviceStart.sh
ExecStop=/data/serviceStop.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target

這里面的ExecStart和ExecStop都是服務(wù)啟動(dòng)和服務(wù)停止腳本的絕對路徑。Description是指服務(wù)的描述信息,這里可以填中文,其他的不要改動(dòng)。

啟用并使用Service

做完以上步驟你就可以在服務(wù)器里執(zhí)行systemctl enable myService命令,即可啟用myService服務(wù),然后使用systemctl start myService即可啟動(dòng)服務(wù),systemctl stop myService即可關(guān)停服務(wù),system status myService命令可以看到服務(wù)的狀態(tài)。

到此這篇關(guān)于如何在Linux將Spring Boot項(xiàng)目的Jar包注冊為開機(jī)自啟動(dòng)系統(tǒng)服務(wù)的文章就介紹到這了,更多相關(guān)Spring Boot Jar包開機(jī)自啟動(dòng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot定時(shí)任務(wù)的實(shí)現(xiàn)詳解

    SpringBoot定時(shí)任務(wù)的實(shí)現(xiàn)詳解

    這篇文章主要介紹了SpringBoot定時(shí)任務(wù)的實(shí)現(xiàn)詳解,定時(shí)任務(wù)是企業(yè)級開發(fā)中最常見的功能之一,如定時(shí)統(tǒng)計(jì)訂單數(shù)、數(shù)據(jù)庫備份、定時(shí)發(fā)送短信和郵件、定時(shí)統(tǒng)計(jì)博客訪客等,簡單的定時(shí)任務(wù)可以直接通過Spring中的@Scheduled注解來實(shí)現(xiàn),需要的朋友可以參考下
    2024-01-01
  • MybatisPlus 插入或更新數(shù)據(jù)時(shí)自動(dòng)填充更新數(shù)據(jù)解決方案

    MybatisPlus 插入或更新數(shù)據(jù)時(shí)自動(dòng)填充更新數(shù)據(jù)解決方案

    本文主要介紹了MybatisPlus 插入或更新數(shù)據(jù)時(shí)自動(dòng)填充更新數(shù)據(jù)解決方案,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Maven引入外部jar的幾種方法(小結(jié))

    Maven引入外部jar的幾種方法(小結(jié))

    這篇文章主要介紹了Maven引入外部jar的幾種方法(小結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • 一篇文章帶你了解java Object根類中關(guān)于toString,equals的方法

    一篇文章帶你了解java Object根類中關(guān)于toString,equals的方法

    這篇文章主要介紹了Object類toString()和equals()方法使用解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 解析Mybatis Porxy動(dòng)態(tài)代理和sql解析替換問題

    解析Mybatis Porxy動(dòng)態(tài)代理和sql解析替換問題

    這篇文章主要介紹了Mybatis Porxy動(dòng)態(tài)代理和sql解析替換,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • MyBatis元素resultMap介紹及使用詳解

    MyBatis元素resultMap介紹及使用詳解

    這篇文章主要介紹了MyBatis元素resultMap介紹及使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • java中Servlet程序下載文件實(shí)例詳解

    java中Servlet程序下載文件實(shí)例詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于java中Servlet程序下載文件實(shí)例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-02-02
  • 關(guān)于Dubbo初始問題

    關(guān)于Dubbo初始問題

    這篇文章主要介紹了關(guān)于Dubbo初始問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • MultipartResolver實(shí)現(xiàn)文件上傳功能

    MultipartResolver實(shí)現(xiàn)文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了MultipartResolver實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Java中JSONObject和Map<String,?Object>的轉(zhuǎn)換方法

    Java中JSONObject和Map<String,?Object>的轉(zhuǎn)換方法

    平時(shí)對接口時(shí),經(jīng)常遇到j(luò)son字符串和map對象之間的交互,這篇文章主要給大家介紹了關(guān)于Java中JSONObject和Map<String,?Object>的轉(zhuǎn)換方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07

最新評論