1. 程式人生 > >linux上部署spring-boot專案

linux上部署spring-boot專案

sh指令碼執行

下面幾個指令碼僅供參考,請根據自己需要做調整
start.sh

#!/bin/sh

rm -f tpid

APP_NAME=fm-eureka-client-1.0-SNAPSHOT
APP_JAR=$APP_NAME".jar"

##nohup命令提交作業,那麼在預設情況下該作業的所有輸出都被重定向到一個名為nohup.out的檔案中,除非另外指定了輸出檔案。這裡指定輸出檔案在為./fm-eureka-client-1.0-SNAPSHOT.log
nohup java -jar $APP_JAR > $APP_NAME".log" 2>&1 &

echo
$! > $APP_NAME".tpid" echo $APP_NAME Start Success!

stop.sh

#!/bin/sh
APP_NAME=fm-eureka-client-1.0-SNAPSHOT

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

kill.sh

#!/bin/sh
APP_NAME=fm-eureka-client-1.0-SNAPSHOT

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid}
]; then echo 'Kill Process!' kill -9 $tpid else echo $APP_NAME 'is not running!' fi

授予執行許可權

chmod +x start.sh
chmod +x stop.sh
chmod +x kill.sh

只要修改變數 $APP_NAME 就可以用這種方式執行jar專案

使用Linux服務的方式執行

  1. 在專案pom.xml中配置外掛

     <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                </configuration>
            </plugin>
        </plugins>
    </build>

    需要注意一下:<executable>true<executable>

  2. 打包jar
    正常使用 mvn clean package -Dmaven.test.skip=true 將工程打成jar包

  3. 部署
    假設部署路徑為 /var/apps/fm-eureka-client.jar ,使用命令做一個軟連線到 /etc/init.d 目錄,命令:

    ln -s /var/apps/fm-eureka-client.jar /etc/init.d/fm-eureka-client

    /etc/init.d/fm-eureka-client中的fm-eureka-client就是服務名。
    另刪除軟鏈的命令是:

    rm /etc/init.d/fm-eureka-client
  4. 授予jar檔案可執行許可權
    命令:

    chmod +x /var/apps/fm-eureka-client.jar
  5. 啟動服務
    接下來,就可以使用 service fm-eureka-client start|stop|restart|status 來對應用進行啟停了。
    執行命令後將得到形如 Started|Stopped [PID] 的結果反饋。
    預設PID檔案路徑:/var/run/{servicename}/{servicename}.pid
    預設服務日誌檔案路徑:/var/log/{servicename}.log(可以通過下面.conf 的方式修改LOG_FOLDER)

  6. 自定義.conf檔案來變更預設配置
    在jar包相同路徑下建立一個.conf檔案,名稱應該與.jar的名稱相同,如fm-eureka-client.conf(如果我們打包的文jar檔案為 fm-eureka-client-1.0-SNAPSHOT.jar 那麼這裡的conf檔案也應該是 fm-eureka-client-1.0-SNAPSHOT.conf),其內容配置可以如下:

    JAVA_HOME=/usr/local/jdk
    JAVA_OPTS=-Xmx1024M
    LOG_FOLDER=/data/logs/myapp

    注:LOG_FOLDER 對應的資料夾目錄要必須存在,如果目錄不存在,服務並不會自從建立目錄。

- - - - - - - - - - - 分 - - - - - - -  割 - - - - - - -  線 - - - - - - - - - - - - - -

如果你是CentOS 7或紅帽7以上,你還可以用下面的方法處理,為什麼要用這樣的方法(請自行研究),這裡直接提供結果
編輯服務檔案 vim /usr/lib/systemd/system/fm-eureka-client.service

[Unit]
[Unit]
Description=test

[Service]
WorkingDirectory=/servers/eureka_client
PrivateTmp=true
Restart=always
Type=simple
ExecStart=/usr/bin/java -jar /servers/eureka_client/fm-eureka-client-1.0-SNAPSHOT.jar
ExecStop=/usr/bin/kill -15  $MAINPID

[Install]
WantedBy=multi-user.target

systemctl 管理,讓配置生效。若是修改配置檔案,需要reload:

sudo systemctl daemon-reload
sudo systemctl enable fm-eureka-client.service

啟動服務

systemctl start fm-eureka-client

檢視服務狀態

systemctl status eureka-client.service

顯示如下:

eureka-client.service - test
   Loaded: loaded (/usr/lib/systemd/system/eureka-client.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2017-10-25 21:32:24 CST; 16min ago
 Main PID: 17080 (java)
   Memory: 478.0M
   CGroup: /system.slice/eureka-client.service
           └─17080 /usr/bin/java -jar /servers/eureka_client/fm-eureka-client-1.0-SNAPSHOT.jar

Oct 25 21:47:03 localhost.localdomain java[17080]: gen usersig times:1
Oct 25 21:47:05 localhost.localdomain java[17080]: load times:0
Oct 25 21:47:05 localhost.localdomain java[17080]: gen usersig times:0
Oct 25 21:47:07 localhost.localdomain java[17080]: load times:0
Oct 25 21:47:07 localhost.localdomain java[17080]: gen usersig times:1
Oct 25 21:47:28 localhost.localdomain java[17080]: 2017-10-25 21:47:28.647  INFO 17080 --- [trap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver      : Resolving eureka...figuration
Oct 25 21:47:43 localhost.localdomain java[17080]: load times:0
Oct 25 21:47:43 localhost.localdomain java[17080]: gen usersig times:0
Oct 25 21:47:46 localhost.localdomain java[17080]: load times:0
Oct 25 21:47:46 localhost.localdomain java[17080]: gen usersig times:0
Warning: eureka-client.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Hint: Some lines were ellipsized, use -l to show in full.

檢視日誌(實時):

journalctl _PID=17080 -f
//或
journalctl -u eureka-client.service -f

使用Linux 7 以後服務新的啟動方式,相關命令

//啟動
systemctl start myapp
//停止
systemctl stop myapp
//重啟
systemctl restart myapp
//檢視日誌
journalctl -u myapp
//關於更多 systemctl 命令的使用方法,度娘有很多。

相關推薦

linux部署spring-boot專案

sh指令碼執行 下面幾個指令碼僅供參考,請根據自己需要做調整 start.sh #!/bin/sh rm -f tpid APP_NAME=fm-eureka-client-1.0-SNAPSHOT APP_JAR=$APP_NAME".jar

【docker】docker部署spring boot專案在伺服器

IDE:idea 工具:docker spring boot:2.0.1 ======================================== 簡單記錄一下流程,以供參考: 第一步:首先得有一個spring boot的專案【集成了jpa+mybatis的spring boot 例子:ht

Centos搭建jenkins,並自動部署Spring Boot專案。(附遇到的問題及解決方案)

最近嘗試自己搭建jenkins自動部署環境,將整個過程及遇到的問題記下來,希望能夠幫助到一些朋友! 本文使用的環境是:Cent os7.2,maven3.5.3,JDK8,jenkins2.136 首先需要在你的伺服器上配好相關的JDK與maven,還要在系統上安裝好gi

部署spring boot專案到spark

先說一下開發環境大概情況: IDE:IntelliJ IDEA 使用spring boot和gradle進行專案的構建 jdk版本 1.8,這裡注意一下,開發環境打jar包時的jdk版本要和spark配置裡的jdk的版本一致。 步驟 1、完成coding後,把當前modu

遠端伺服器部署spring boot 專案(centos7為例)

1.打包專案(可以是jar包,也可以是war包)以jar包為例(用eclipse打包):    1.專案目錄右擊--debug as(run as)--maven build,然後輸入package,點選debug,就會在target目錄生成相應的包:2.上傳專案:上傳方法可

docker容器部署Spring Boot專案及更新

一、部署spring boot專案服務       首先用docker pull命令拉取一個centos映象。 專案伺服器部署目錄內容如下: 服務映象yumoq/permission-client構建: permission-client容器執行:

jenkins 自動化部署 spring boot 專案(多圖)

前置條件 jenkins與部署專案所用伺服器為同一臺 將下載好的war包,放在tomcat的webapps目錄下,啟動tomcat 預設 8080 埠 wget http://mi

Jenkins+Docker自動化部署Spring boot專案 (二)搭建docker私庫Harbor

前言 docker映象的push、pull都需要映象庫。現在不少大廠提供免費的映象庫,如docker hub,163 hub,也可以自己搭建一個私有映象庫。我用了vmware公司開源的harbor作為docker私有庫,相比docker官方提供的私有庫regi

centos7部署spring boot

不難,記錄備忘: 一、有centos7的機器   可用Virtualbox安裝centos虛擬機器:https://www.centos.org/download/ 二、機器上安裝有docker   參考文章:https://www.cnblogs.com/yufeng218/p/8370670.ht

Docker 中部署 Spring boot 專案

$ docker run --name mysql_container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql建立 Redis 容器 $ docker run --name redis_container -p 6379:6379 -d re

win10下nginx部署spring boot專案的配置與啟動

沒得說,先下載nginx window版本,我是解壓到 C:/tools目錄下;進入nginx 找到nginx.conf檔案並且開啟,我的配置如下:因為是window系統,80埠被佔用,你可以把程序殺死,也可以把 listen 監聽的埠改一下,紅色的方框是你要配置的專案;接著

使用Docker部署Spring Boot專案

本文使用Docker部署Spring Boot專案。部署之前需要環境中已經安裝Docker和Maven(用於打包),所以本文先進行安裝Docker和Maven;接著搭建一個Spring Boot專案,使其支援Docker部署;最後進行部署和測試。 環境搭建 安裝Docker 檢查系統核心版本 Docker執行

在Docker中部署Spring Boot專案

想要獲取更多文章可以訪問我的部落格 - 程式碼無止境。 微服務現在在網際網路公司可謂非常流行了,之前找工作的的時候很多HR電話約面試的時候都會問對微服務是否有過接觸。而微服務和Docker可以非常完美的結合,更加方便的實現微服務架構的落地。作為微服務中的代表SpringBoot框架,今天我們就來了解一下如

Windows Docker 部署 Spring Boot 專案

目錄 Docker Configuration Config IDEA Plugin Create Spring Boot Project Containerize It U

Docker Gitlab CI 部署 Spring Boot 專案

目前在學習這一塊的內容,但是可能每個人環境都不同,導致找不到一篇部落格能夠完全操作下來沒有錯誤的,所以自己也寫一下,記錄一下整個搭建的過程。 Docker 的安裝這裡就不贅述了,基本上幾行命令都可以了,不會的可以搜一下其他的部落格。我本地使用的環境如下: Ubuntu16.04 Docker19.03 管理

Gitlab CI 整合 Kubernetes 叢集部署 Spring Boot 專案

在上一篇部落格中,我們成功將 Gitlab CI 部署到了 Docker 中去,成功建立了 Gitlab CI Pipline 來執行 CI/CD 任務。那麼這篇文章我們更進一步,將它整合到 K8s 叢集中去。這個才是我們最終的目標。眾所周知,k8s 是目前最火的容器編排專案,很多公司都使用它來構建和管理自己

Spring框架學習筆記(6)——阿里雲伺服器部署Spring Boot專案(jar包)

最近接外包,需要部署伺服器,便是參考了網上的幾篇博文,成功在阿里雲伺服器成功部署了Spring Boot專案,特記下本篇筆記 Spring Boot專案打包 這裡說一下部署的一些問題 1.mysql驅動 建立spring boot的時候,在介面選擇添加了MySql的依賴,但是,實際專案測試的時候,發現驅動錯誤

使用 Docker 部署 Spring Boot 專案

Docker 介紹 Docker 屬於 Linux 容器的一種封裝,提供簡單易用的容器使用介面。它是目前最流行的 Linux 容器解決方案。 Docker 將應用程式與該程式的依賴,打包在一個檔案裡面。執行這個檔案,就會生成一個虛擬容器。程式在這個虛擬容器裡執行,就好像在真實的物理機上執行一樣。有了 Dock

使用 Docker 部署 Spring Boot 專案,帶勁!!

上一篇:[年輕人的第一個 Docker 應用](https://mp.weixin.qq.com/s/k2ShhlAMplbwGap0eOUJuQ) Docker 一次構建、處處執行及快速啟停的特性,在微服務架構中有著舉足輕重的地位,具體的概念性的東西就不介紹了,不懂的點選[這裡](https://mp.w

用idea打包spring boot專案,然後部署Linux伺服器

一、IDEA 配置在 IDEA 上 File--->Setting--->Project Structure選擇 Artifacts ,右上角加號新增--->jar選擇專案主類,點選 ok二、在 IDEA 上打包專案開啟側邊欄的 Maven Project 雙擊 Package這時候控制檯開