博客
关于我
你知道如何自动保存 Spring Boot 应用进程号吗
阅读量:426 次
发布时间:2019-03-06

本文共 2433 字,大约阅读时间需要 8 分钟。

1. 前言

欢迎阅读 。 PID 对于系统运维来说并不陌生,但是对于一些开发者特别是新手还是要简单介绍一下的。它是 Process ID 的简称,是系统分配给一个进程的唯一标识符,是各进程的身份标识符,程序一运行系统就会自动分配给进程一个独一无二的 PID。进程终止后,PID 被系统回收,可能会被继续给新运行的程序。俗称 进程号

PID 是我们进行系统进程管理的重要参数,是重要的运维标识。例如我们常用的 kill -9 <pid>

2. Spring Boot 应用的进程

jpsJava 自带的查看 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 */@SpringBootApplicationpublic 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 的存储文件。今天就到这里,如果觉得不错,请点个赞和转发支持一下吧。

关注公众号:Felordcn获取更多资讯

转载地址:http://wsjuz.baihongyu.com/

你可能感兴趣的文章
Node-RED中使用node-random节点来实现随机数在折线图中显示
查看>>
Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
查看>>
Node-RED中使用node-red-contrib-image-output节点实现图片预览
查看>>
Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
查看>>
Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
查看>>
Node-RED中使用range范围节点实现从一个范围对应至另一个范围
查看>>
Node-RED中实现HTML表单提交和获取提交的内容
查看>>
Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
查看>>
Node-RED中建立TCP服务端和客户端
查看>>
Node-RED中建立Websocket客户端连接
查看>>
Node-RED中建立静态网页和动态网页内容
查看>>
Node-RED中解析高德地图天气api的json数据显示天气仪表盘
查看>>
Node-RED中连接Mysql数据库并实现增删改查的操作
查看>>
Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
查看>>
Node-RED中配置周期性执行、指定时间阶段执行、指定时间执行事件
查看>>
Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
查看>>
Node-RED怎样导出导入流程为json文件
查看>>
Node-RED订阅MQTT主题并调试数据
查看>>
Node-RED通过npm安装的方式对应卸载
查看>>
node-request模块
查看>>