你知道如何自動儲存 Spring Boot 應用程式號嗎
1. 前言
歡迎閱讀 。 PID
對於系統運維來說並不陌生,但是對於一些開發者特別是新手還是要簡單介紹一下的。它是 Process ID 的簡稱,是系統分配給一個程式的唯一識別符號,是各程式的身份識別符號,程式一執行系統就會自動分配給程式一個獨一無二的 PID
。程式終止後,PID
被系統回收,可能會被繼續給新執行的程式。俗稱 程式號
。PID
是我們進行系統程式管理的重要引數,是重要的運維標識。例如我們常用的 kill -9 <pid>
。
2. Spring Boot 應用的程式
jps
是 Java 自帶的檢視 Java 程式的命令,透過這個命令可以檢視當前系統所有執行中的 Java 程式、Java包名、jar 包名及 JVM 引數等。詳細請參考相關 。通常我們會用 jps
來查 Java 應用的程式號。
Spring Boot 應用 作為 Java 應用啟動後自然有一個 PID
程式號。通常我們在啟動後會在 log 中看到它:
. ____ _ __ _ _
/\ / ___'_ __ _ _(_)_ __ __ _
( ( )___ | '_ | '_| | '_ / _` |
\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |___, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.0.RELEASE)
2019-11-20 14:28:00.925 INFO 7828 --- [ main] c.f.s.s.SecurityLearningApplication : Starting SecurityLearningApplication on DESKTOP-L0IOI2S with PID 7828
當使用多個Spring Boot應用程式時,很難識別Spring Boot應用程式PID,持久化後的 PID
更加方便我們來管理 Spring Boot 應用。
3. Spring Boot 應用 PID 寫入檔案
Spring Boot 提供了在應用程式啟動時將應用程式PID寫入檔案的方法,具體的功能由 ApplicationPidFileWriter
完成 。大致邏輯為:在應用啟動時監聽啟動事件,將 PID
寫入指定的檔案,預設為 application.pid
;預設路徑為當前路徑。如果寫入檔案失敗,將會將 PID
值 寫入系統環境變數屬性 PID_FAIL_ON_WRITE_ERROR
(不區分大小寫),或者寫入 Spring 環境變數屬性 spring.pid.fail-on-write-error
。
3.1 配置 Spring Boot PID 持久化功能
預設情況下 ApplicationPidFileWriter
並沒有自動配置,需要我們自行配置。我們可以在 Spring Boot 入口類中按照下面的模板進行配置註冊監聽器 ApplicationPidFileWriter
:
package cn.felord.spring.security;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.ApplicationPidFileWriter;
import org.springframework.cache.annotation.EnableCaching;
/**
* @author Felordcn
*/
@SpringBootApplication
public class SecurityLearningApplication {
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(SecurityLearningApplication.class);
springApplication.addListeners(new ApplicationPidFileWriter());
springApplication.run(args);
}
}
做了上述配置後,啟動就會生成 application.pid
檔案,裡面就會有 PID
。有時候可能你要定製檔案的名稱和路徑。你可以透過 Spring Boot 的配置屬性 spring.pid.file
來定製:
spring:
pid:
# 將 PID 寫入 /var/run 路徑下的 myApp.pid 檔案中
file: /var/run/myApp.pid
重新啟動,會在 /var/run
下找到 myApp.pid
。
4. 總結
今天我們對如何持久化 Spring Boot PID
進行了講解。透過程式設計式的配置,你可以將 Spring Boot 應用的 PID
持久化到檔案中,並且你可以根據需求定製 PID
的儲存檔案。今天就到這裡,如果覺得不錯,請點個贊和轉發支援一下吧。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1020/viewspace-2824465/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 塊儲存是做什麼用的,你知道嗎?
- 你應該知道的前端--儲存前端
- Spring Boot 應用程式啟動流程分析Spring Boot
- 在Spring Boot應用啟動時如何執行程式碼? -DukesletterSpring Boot行程
- Spring Boot @Condition 註解,組合條件你知道嗎Spring Boot
- Spring Boot 到底是怎麼執行的,你知道嗎?Spring Boot
- Spring Boot到底是怎麼執行的,你知道嗎?Spring Boot
- 校園儲存雲盤,你知道怎麼選擇嗎?
- 自動編號的儲存過程 (轉)儲存過程
- 用了這麼多年 Spring Boot 你知道他爹有多大背景嗎?Spring Boot
- 如何在安卓應用程式中儲存資料安卓
- 自動儲存、靜態儲存和動態儲存
- Spring還可以這樣用快取,你知道嗎?Spring快取
- 你知道Spring中BeanFactoryPostProcessors是如何執行的嗎?SpringBean
- Spring boot應用如何支援httpsSpring BootHTTP
- 如何預熱Spring Boot應用? - sebsteinSpring Boot
- HarmonyOS:儲存你的應用資料
- Spring Boot:使用Redis儲存技術Spring BootRedis
- Spring Boot應用程式有哪些功能?Spring Boot
- Spring Boot 應用程式中的 QueryDSLSpring Boot
- 你知道如何用 PHP 實現多程式嗎?PHP
- 你知道無程式碼開發平臺可以開發哪些應用程式嗎
- wps自動儲存時間設定在哪裡 WPS如何設定自動儲存
- 如何優雅地停止 Spring Boot 應用?Spring Boot
- 如何讓Notepad++自動儲存
- Spring Boot應用程式事件教程 - reflectoringSpring Boot事件
- Spring Boot + Kotlin + Coroutines應用演示程式Spring BootKotlin
- Spring Boot 自動配置原理Spring Boot
- Spring Boot整合Spring Cloud Vault進行安全儲存Spring BootCloud
- 如何在Spring Boot應用程式中啟用GZIP壓縮? | 前端後端Spring Boot前端後端
- Spring Boot中如何使用Ostara監控應用?Spring Boot
- Spring Boot 和 Spring Cloud 應用記憶體如何管理?Spring BootCloud記憶體
- win10的自動更新在哪,你知道win10的自動更新在哪嗎Win10
- Spring Boot 自動裝配原理Spring Boot
- Spring Boot核心原理-自動配置Spring Boot
- Jenkins自動部署spring bootJenkinsSpring Boot
- 都在用Nginx,你真的知道它的應用場景嗎?Nginx
- 智慧安防的三大應用場景,你知道嗎?