獲取SpringBoot工程運行時的操作系統(tǒng)進程ID方法
Spring Boot為我們提供了操作系統(tǒng)進程PID以及Web服務器端口號輸出到文件的能力,這對于我們做進程監(jiān)控,查詢端口信息等很有幫助。有時也會遇到SpringBoot工程cpu占用100%的情況,知道了PID進程號,就可以準確無誤的定位哪個jar服務問題,便于排查分析相關信息,Kill掉進程等操作,下面來看下這種能力具體怎么使用~
SpringBoot版本 2.4.5
參考官方文檔:https://docs.spring.io/spring-boot/docs/2.4.5/reference/htmlsingle/#production-ready-process-monitoring
使用方式
在SpringBoot工程下創(chuàng)建配置文件并粘貼代碼,文件路徑為src/main/resources/META-INF/spring.factories
示例配置:https://github.com/netbuffer/spring-boot-demo/blob/master/src/main/resources/META-INF/spring.factories

運行效果
啟動工程后,會在工程的根目錄下生成application.pid文件,其中寫入了操作系統(tǒng)PID進程編號;application.port文件,其中寫入了web服務器端口號
這是IDEA下運行后的效果

這是打成jar包后執(zhí)行的效果,會在jar包同級目錄下生成對應文件

linux下,在知道PID后,可以執(zhí)行如下指令查詢進程下的線程情況

windows下根據(jù)PID,方便區(qū)分不同java進程對應不同的服務

示例工程:https://github.com/netbuffer/spring-boot-demo