美文网首页
获取SpringBoot工程运行时的操作系统进程ID方法

获取SpringBoot工程运行时的操作系统进程ID方法

作者: 向上生长之路 | 来源:发表于2021-10-05 15:10 被阅读0次

Spring Boot为我们提供了操作系统进程PID以及Web服务器端口号输出到文件的能力,这对于我们做进程监控,查询端口信息等很有帮助。有时也会遇到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工程下创建配置文件并粘贴代码,文件路径为src/main/resources/META-INF/spring.factories
示例配置:https://github.com/netbuffer/spring-boot-demo/blob/master/src/main/resources/META-INF/spring.factories

org.springframework.context.ApplicationListener=\
org.springframework.boot.context.ApplicationPidFileWriter,\
org.springframework.boot.web.context.WebServerPortFileWriter
spring.factories

运行效果

启动工程后,会在工程的根目录下生成application.pid文件,其中写入了操作系统PID进程编号;application.port文件,其中写入了web服务器端口号
这是IDEA下运行后的效果


这是打成jar包后执行的效果,会在jar包同级目录下生成对应文件

linux下,在知道PID后,可以执行如下指令查询进程下的线程情况
top -Hp your-pid

windows下根据PID,方便区分不同java进程对应不同的服务


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

相关文章

网友评论

      本文标题:获取SpringBoot工程运行时的操作系统进程ID方法

      本文链接:https://www.haomeiwen.com/subject/jvqgnltx.html