Linux環境下快速部署Spring Boot應用:高效命令組合實踐

概要:

本文旨在介紹一種高效的Linux命令組合,用于簡化Spring Boot項目的部署與管理流程。通過結合使用nohupjava -jar、輸出重定向以及進程管理命令,我們能夠實現Spring Boot應用的快速后臺啟動及便捷的進程控制,尤其適合于自動化部署腳本或日常運維操作。

1.start.sh

nohup java -jar current.jar >/null &
  • nohup:是"No hang up"的縮寫,它的作用是在運行命令之后忽略所有的掛斷(HUP)信號。這意味著即使你關閉了終端或者斷開了SSH連接,這個命令及其啟動的進程仍然會在后臺繼續運行。

  • java -jar current.jar:這是啟動Java應用程序的基本命令。java是Java運行時環境的可執行文件,-jar選項告訴Java直接從指定的JAR文件(這里是current.jar)加載JavaManifest文件并執行主類,從而啟動應用程序。

  • >:輸出重定向符號,用于將原本輸出到屏幕的標準輸出(STDOUT)內容重定向到另一個地方。

  • /null:在這個場景中,它試圖將標準輸出重定向到一個名為null的文件,但實際上在大多數Unix/Linux系統中,/dev/null是一個特殊的文件,用于丟棄一切寫入其中的數據,因此這里的目的是丟棄Java程序的標準輸出信息,讓程序安靜地在后臺運行,不產生任何輸出日志。

  • &:這個符號放在命令的末尾,意味著將命令放到后臺執行。當你在命令行輸入以&結尾的命令后,shell會立即返回提示符,允許你在同一終端進行其他操作,而命令會在后臺繼續運行。

2.stop.sh

ps -ef |grep "current.jar" |grep -v grep |awk '{print $2}'|xargs kill -9

這行命令是Linux/Unix shell腳本中用于查找并殺死名為"current.jar"的Java進程的常用命令組合

  1. ps -ef:這個命令用于列出系統中所有正在運行的進程的信息。-e表示列出所有進程,-f則表示以全格式輸出,即展示包括PID(進程ID)、父進程ID、用戶、啟動時間等在內的詳細信息。

  2. grep "current.jar":通過管道|,將上一步的結果作為輸入,使用grep命令過濾出包含字符串"current.jar"的行。通常,這用來找出與運行中的Java應用程序相關的進程,尤其是當該應用的jar包名為current.jar時。

  3. grep -v grep:再次通過管道傳遞結果,并使用grep -v來排除那些包含grep自身進程的信息。這樣做是為了避免在結果中誤殺執行此命令的grep進程。

  4. awk '{print $2}':進一步處理管道傳來的數據,使用awk命令提取每行的第二個字段(即PID)。在ps -ef的輸出中,PID通常是每行的第二個列(以空格分隔)。

  5. | xargs kill -9:最后,通過管道,將前面命令得到的所有PID作為輸入傳遞給xargsxargs的作用是將這些PID作為參數傳遞給后面的命令。在這里,它執行的是kill -9,其中-9是SIGKILL信號,這是一種強制終止進程的信號,這意味著它會立即結束指定PID的進程,而不給進程清理資源或優雅退出的機會。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37914.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37914.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37914.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是 JVM( Java 虛擬機),它在 Java 程序執行中扮演什么角色?

JVM,全稱Java Virtual Machine,中文譯作“Java虛擬機”,它是運行Java程序的軟件環境,也是Java語言的核心部分之一。 想象一下,如果你是一位環球旅行家,每到一個新的國家,都需要學習當地的語言才…

【Linux】初識操作系統

一、馮?諾依曼體系結構 在學習操作系統之前,我們先來認識一下馮?諾依曼體系結構,我們常見的計算機,如筆記本。我們不常見的計算機,如服務器,大部分都遵守馮諾依曼體系。 截至目前,我們所認識的計算機&am…

神經網絡訓練(一):基于殘差連接的圖片分類網絡(ResNet18)

目錄 一、簡介:二、圖片分類網絡1.記載訓練數據(torch自帶的cifa10數據集)2.數據增強3.模型構建4.模型訓練三、完整源碼及文檔一、簡介: 基于殘差連接的圖片分類網絡,本網絡使用ResNet18作為基礎模塊,根據cifa10的特點進行改進網絡,使用交叉熵損失函數和SGD優化器。本網…

使用pyqt5編寫一個七彩時鐘

使用pyqt5編寫一個七彩時鐘 效果代碼解析定義 RainbowClockWindow 類初始化用戶界面顯示時間方法 完整代碼 在這篇博客中,我們將使用 PyQt5 創建一個簡單的七彩數字時鐘。 效果 代碼解析 定義 RainbowClockWindow 類 class RainbowClockWindow(QMainWindow):def _…

【TB作品】溫濕度監控系統設計,ATMEGA16單片機,Proteus仿真

題2:溫濕度監控系統設計 功能要求: 1)開機顯示時間(小時、分)、時分可修改; 2)用兩個滑動變阻器分別模擬溫度傳感器(測量范 圍0-100度)與濕度傳感器(0-100%),通過按鍵 可以在數碼管切換顯示當前溫度值、濕度值; 3)當溫度低于20度時,紅燈長亮; 4)當濕度高于70%時,黃燈長亮; 5)當…

安卓實現微信聊天氣泡

一搜沒一個能用的&#xff0c;我來&#xff1a; 布局文件&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xml…

Tech Talk:智能電視eMMC存儲的五問五答

智能電視作為搭載操作系統的綜合影音載體&#xff0c;以穩步擴大的市場規模走入越來越多的家庭&#xff0c;成為人們生活娛樂的重要組成部分。存儲部件是智能電視不可或缺的組成部分&#xff0c;用于保存操作系統、應用程序、多媒體文件和用戶數據等信息。智能電視使用eMMC作為…

vue3中使用Antv G6渲染樹形結構并支持節點增刪改

寫在前面 在一些管理系統中&#xff0c;會對組織架構、級聯數據等做一些管理&#xff0c;你會怎么實現呢&#xff1f;在經過調研很多插件之后決定使用 Antv G6 實現&#xff0c;文檔也比較清晰&#xff0c;看看怎么實現吧&#xff0c;先來看看效果圖。點擊在線體驗 實現的功能…

服務端開發過程中常見的安全性問題

身份驗證與授權 密碼加密 加密傳輸 Https DDoS SQL注入 SQL注入的本質:數據和代碼未分離&#xff0c;即數據當做了代碼來執行。 解決辦法 檢查輸入的數據是否符合預期&#xff0c;不能直接放入數據庫中進行查詢字符串長度驗證mybatis具有防sql注入的方式 使用#{}代替${…

深入探討光刻技術:半導體制造的關鍵工藝

前言 光刻&#xff08;Photolithography&#xff09;是現代半導體制造過程中不可或缺的一環&#xff0c;它的精度和能力直接決定了芯片的性能和密度。本文將詳細介紹光刻技術的基本原理、過程、關鍵技術及其在半導體制造中的重要性。 光刻技術的基本原理 光刻是一種利用光化…

受限玻爾茲曼機淺析

受限玻爾茲曼機&#xff08;Restricted Boltzmann Machine&#xff0c;簡稱RBM&#xff09;是一種特殊的隨機生成神經網絡&#xff0c;能夠學習并發現數據的復雜規則分布。以下是關于受限玻爾茲曼機算法的詳細介紹&#xff1a; ?? 定義與起源 定義&#xff1a; 受限玻爾茲…

深入剖析Tomcat(十四) Server、Service 組件:如何啟停Tomcat服務?

通過前面文章的學習&#xff0c;我們已經了解了連接器&#xff0c;四大容器是如何配合工作的&#xff0c;在源碼中提供的示例也都是“一個連接器”“一個頂層容器”的結構。并且啟動方式是分別啟動連接器和容器&#xff0c;類似下面代碼 connector.setContainer(engine); try …

主流分布式消息中間件RabbitMQ、RocketMQ

分布式消息中間件在現代分布式系統中起著至關重要的作用。以下是一些主流的分布式消息中間件&#xff1a; 1. Apache Kafka - 特點&#xff1a;高吞吐量、低延遲、持久化、水平可擴展、分布式日志系統。 - 使用場景&#xff1a;日志收集與處理、實時流處理、事件驅動架構、大數…

NC204871 求和

鏈接 思路&#xff1a; 對于一個子樹來說&#xff0c;子樹的節點就包括在整顆樹的dfs序中子樹根節點出現的前后之間&#xff0c;所以我們先進行一次dfs&#xff0c;用b數組的0表示區間左端點&#xff0c;1表示區間右端點&#xff0c;同時用a數組來標記dfs序中的值。處理完dfs序…

小程序的運行機制、更新機制、生命周期介紹保姆級教程全解

一、小程序運行機制 1. 小程序冷啟動 小程序啟動可以分為兩種情況&#xff0c;一種是冷啟動&#xff0c;一種是熱啟動- 冷啟動&#xff1a;如果用戶首次打開&#xff0c;或小程序銷毀后被用戶再次打開&#xff0c;此時小程序需要重新加載啟動- 熱啟動&#xff1a;如果用戶已經打…

HSP_12章 Python面向對象編程oop_多態

文章目錄 P128 多態問題的引出P129 多態細節和使用1. 多態介紹&特別說明2. 多態的好處3. 特別說明: Python多態的特點4. 使用多態的機制來解決主人喂食物的問題 P128 多態問題的引出 先看一個問題 # 說明: 先試用傳統的方式完成 class Food:name Nonedef __init__(self,…

4.Android逆向協議-詳解二次打包失敗解決方案

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a;微塵網校 上一個內容&#xff1a;3.Android逆向協議-APP反反編譯及回編譯 工具下載&#xff1a; 鏈接&#xff1a;https://pan.baidu.…

【MyBatis】 - 自定義TypeHandler-數組

在Java中&#xff0c;如果你使用的是MyBatis并需要為String數組自定義TypeHandler&#xff0c;可以按照以下步驟進行操作。TypeHandler用于自定義對象與數據庫字段之間的轉換。 步驟一&#xff1a;創建自定義的TypeHandler 首先&#xff0c;你需要創建一個自定義的TypeHandle…

#筆記# 寫給自己用的小爬蟲

最近完成了一個文旅行業信息聚合的小應用&#xff0c;實現僅從一個入口了解全行業的信息動態&#xff0c;不用一個一個翻看各網站&#xff0c;節省了不少檢索時間。 一、基本思路 明確數據來源。基于前述目標&#xff0c;確定數據源為文化和旅游部管理部門官網&#xff0c;比…

STM32中斷

目錄 stm32中斷原理標準庫高低電平使LED亮滅燈采用串口中斷方式做串口通信 stm32中斷原理 在STM32微控制器中&#xff0c;中斷是一種重要的事件驅動機制&#xff0c;用于處理實時事件而無需持續輪詢。中斷在處理外部事件&#xff08;如按鍵輸入、定時器溢出等&#xff09;時非…