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

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

1. 前言

欢迎阅读本文。对于系统运维来说,PID并非陌生,但对于一些开发者尤其是新手来说,了解PID的概念可能仍然有所必要。PID是进程ID的简称,它是系统为每个进程分配的唯一标识符。每当一个程序启动时,系统都会为它分配一个独一无二的PID。一旦进程终止,PID会被系统回收,通常会被重新分配给新的运行程序。因此,PID也被称为“进程号”。

PID是我们进行系统进程管理的重要参数。例如,我们常用的命令`kill -9

`就是通过PID来终止特定的进程。对于Java开发者来说,PID也是一项重要的运维标识。了解PID的概念和使用方法,对于管理和监控Java应用程序尤为重要。

2. Spring Boot 应用的进程

在Java世界里,`jps`是一个查看Java进程的命令行工具。通过这个命令,我们可以查看当前系统运行中的Java进程信息,包括PID、包名、JAR文件名以及JVM参数等。对于Spring Boot应用程序来说,启动后也会有一个对应的PID。通常我们在启动时会在日志中看到相关信息。例如:

____          _            __ _ _  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )   '  |____| .__|_| |_|_| |_\__, | / / / /  =========|_|==============|___/=/_/_/_/  :: 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应用程序时,识别每个应用程序的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应用程序中。因此,我们需要手动进行配置。通常,我们可以在Spring Boot的入口类中添加相关监听器。以下是一个示例配置:

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进行了讲解。通过配置`ApplicationPidFileWriter`,我们可以将Spring Boot应用程序的PID写入文件中,并根据需求定制PID的存储文件。PID是系统管理和监控Java应用程序的重要参数之一。希望通过本文的内容,你能够更好地理解和管理Spring Boot应用程序的PID。如果你觉得内容有帮助,请不要忘记点赞和转发支持我们。

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

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

你可能感兴趣的文章
NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
查看>>
NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
查看>>
NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
Nim教程【十二】
查看>>
Nim游戏
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO三大组件基础知识
查看>>
NIO与零拷贝和AIO
查看>>
NIO同步网络编程
查看>>