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

SpringBoot項(xiàng)目Jar包使用systemctl運(yùn)行過程

 更新時(shí)間:2025年03月24日 09:59:02   作者:太自由  
這篇文章主要介紹了SpringBoot項(xiàng)目Jar包使用systemctl運(yùn)行過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1. 前言

SpringBoot項(xiàng)目打成jar包后,可以直接使用 java -jar xxx.jar 啟動(dòng)。但是為了方便啟動(dòng)和停止服務(wù),通常我們會(huì)寫兩個(gè)腳本,分別是啟動(dòng)腳本 start.sh 和 停止腳本 shutdown.sh(這兩個(gè)腳本內(nèi)容我們下文會(huì)實(shí)現(xiàn));

再進(jìn)一步的做法是可以把我們的服務(wù)添加成系統(tǒng)服務(wù),使用systemctl 進(jìn)行管理,就像使用 systemctl status firewalld.service 一樣。

2. 創(chuàng)建SpringBoot項(xiàng)目并生成jar包

為了演示,先創(chuàng)建一個(gè)最普通的SpringBoot項(xiàng)目,在項(xiàng)目中使用 SLFJ + Logback記錄日志。

項(xiàng)目目錄結(jié)構(gòu)如下。

3. 使用 java -jar 命令在服務(wù)器上運(yùn)行

3.1 前臺(tái)運(yùn)行

前臺(tái)運(yùn)行,直接在jar包所在目錄執(zhí)行 java -jar xxx.jar 就可以了,如下所示:

3.2 后臺(tái)運(yùn)行(帶nohup.out日志)

通常我們是讓服務(wù)在后臺(tái)運(yùn)行,可以使用 nohup java -jar xxx.jar & 運(yùn)行jar包,如下:

這種直接使用 nohup java -jar xxx.jar & 運(yùn)行jar包會(huì)產(chǎn)生一個(gè) nohup.out日志文件,在項(xiàng)目運(yùn)行過程中的日志都會(huì)追加到這個(gè)文件中,時(shí)間長(zhǎng)了這個(gè)文件就會(huì)非常大,容易打滿磁盤,浪費(fèi)硬盤存儲(chǔ)空間。

3.3 后臺(tái)運(yùn)行(不帶nohup.out日志)

因?yàn)槲覀兊捻?xiàng)目通常集成了 SLFJ + Logback 進(jìn)行日志記錄,所以不需要生成這個(gè)文件,可以使用如下命令運(yùn)行jar包。

nohup java -jar xxx.jar >/dev/null 2>&1 &

4. 使用腳本實(shí)現(xiàn)啟動(dòng)和停止jar包

每次使用 nohup java -jar xxx.jar >/dev/null 2>&1 & 運(yùn)行項(xiàng)目太麻煩,并且在關(guān)閉服務(wù)時(shí),還要先找到這個(gè)服務(wù)的進(jìn)程號(hào),然后才能關(guān)閉。

所以可以把啟動(dòng)項(xiàng)目和關(guān)閉項(xiàng)目寫成腳本,每次只要執(zhí)行腳本就可以了。

4.1 啟動(dòng)服務(wù)腳本

啟動(dòng)服務(wù)腳本如下:

#!/bin/bash
pid=$(pgrep -f 你的jar包名稱.jar)
if [ -z $pid ];then
    nohup java -jar 你的jar包名稱.jar >/dev/null 2>&1 &
else
    echo "你的jar包名稱.jar is already running [pid is $pid]" 
fi

比如我的啟動(dòng)腳本如下:

啟動(dòng)項(xiàng)目的過程如下:

4.2 停止服務(wù)腳本

停止服務(wù)腳本如下:

#!/bin/bash
pid=$(pgrep -f 你的jar名字.jar)
echo $pid
if [ -z $pid ];then
    echo "你的jar名字.jar is not running"
else
    kill -15 $pid
fi

比如我的停止服務(wù)腳本如下:

執(zhí)行停止服務(wù)腳本過程如下:

5. 使用systemctl 命令管理jar包的啟動(dòng)和停止

5.1 添加到系統(tǒng)服務(wù)

(1)寫一個(gè)服務(wù)腳本,名稱以 .service結(jié)尾 【我寫的是 demo-service.service,其內(nèi)容如下,你可以參照下面的寫法,修改成你自己的】

[Unit]
Description=demo-service
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/myJar/run_jar
ExecStart=/opt/software/jdk/jdk8/jdk1.8.0_221/bin/java -jar /opt/myJar/run_jar/demo-project-1-1.0-SNAPSHOT.jar
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

(2)把此文件,即demo-service.service 放到 /usr/lib/systemd/system/ 目錄下

(3)執(zhí)行 systemctl daemon-reload 命令

5.2 如何使用

使用請(qǐng)看圖中說明。

還可以把啟動(dòng)服務(wù)添加到開機(jī)自啟,執(zhí)行如下命令,當(dāng)服務(wù)器重啟后就會(huì)自動(dòng)啟動(dòng)服務(wù)。

systemctl enable demo-service.service

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot緩存的使用實(shí)踐

    springboot緩存的使用實(shí)踐

    這篇文章主要介紹了springboot緩存的使用,spring針對(duì)各種緩存實(shí)現(xiàn),抽象出了CacheManager接口,用戶使用該接口處理緩存,而無需關(guān)心底層實(shí)現(xiàn),感興趣的小伙伴們可以參考一下
    2018-06-06
  • 詳解SpringBoot 應(yīng)用如何提高服務(wù)吞吐量

    詳解SpringBoot 應(yīng)用如何提高服務(wù)吞吐量

    這篇文章主要介紹了Spring Boot 應(yīng)用如何提高服務(wù)吞吐量,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java 使用Axis調(diào)用WebService的示例代碼

    Java 使用Axis調(diào)用WebService的示例代碼

    這篇文章主要介紹了Java 使用Axis調(diào)用WebService的示例代碼,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-09-09
  • SpringCloud之微服務(wù)容錯(cuò)的實(shí)現(xiàn)

    SpringCloud之微服務(wù)容錯(cuò)的實(shí)現(xiàn)

    這篇文章主要介紹了SpringCloud之微服務(wù)容錯(cuò)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Spring Cloud 系列之負(fù)載均衡 Ribbon的示例代碼

    Spring Cloud 系列之負(fù)載均衡 Ribbon的示例代碼

    Ribbon 是 Netflix 發(fā)布的負(fù)載均衡器,它有助于控制 HTTP 和 TCP 客戶端的行為。這篇文章主要介紹了Spring Cloud 系列之負(fù)載均衡 Ribbon的示例代碼,需要的朋友可以參考下
    2020-11-11
  • Java版AI五子棋游戲

    Java版AI五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了Java版AI五子棋游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Spring事務(wù)&Spring整合MyBatis的兩種方式

    Spring事務(wù)&Spring整合MyBatis的兩種方式

    這篇文章主要介紹了Spring事務(wù)&Spring整合MyBatis的兩種方式,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Java設(shè)計(jì)模式之單一職責(zé)原則精解

    Java設(shè)計(jì)模式之單一職責(zé)原則精解

    設(shè)計(jì)模式(Design pattern)代表了最佳的實(shí)踐,通常被有經(jīng)驗(yàn)的面向?qū)ο蟮能浖_發(fā)人員所采用。設(shè)計(jì)模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。本篇介紹設(shè)計(jì)模式七大原則之一的單一職責(zé)原則
    2022-02-02
  • java線程池實(shí)戰(zhàn)應(yīng)用步驟詳解

    java線程池實(shí)戰(zhàn)應(yīng)用步驟詳解

    這篇文章主要介紹了java線程池實(shí)戰(zhàn)應(yīng)用小結(jié),包括線程池的創(chuàng)建方式,本文給大家分享兩種方式,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2025-04-04
  • Java使用數(shù)組實(shí)現(xiàn)ArrayList的動(dòng)態(tài)擴(kuò)容的方法

    Java使用數(shù)組實(shí)現(xiàn)ArrayList的動(dòng)態(tài)擴(kuò)容的方法

    這篇文章主要介紹了Java使用數(shù)組實(shí)現(xiàn)ArrayList的動(dòng)態(tài)擴(kuò)容的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論