在Springboot框架生成pid文件

整体描述

在linux系统里,pid文件为文本文件,内容只有一行, 记录了该进程的ID。主要可以防止启动多个副本在linux系统自启动时可以加判断,本文介绍一下,如何在springboot的框架下,添加pid文件。

具体方法

1. pom配置

springboot框架自带了控制pid启动的配置,需要先在pom里加入依赖:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

2. 设置pid文件名

加完依赖之后,在yml文件里加入如下配置,配置pid文件路径和名称:

spring:
  pid:
    file: /var/run/teat.pid

3. 代码启动

在springboot启动的时候,添加listener:

@SpringBootApplication(exclude = {
          
   DataSourceAutoConfiguration.class})
@EnableAsync
public class TestApplication extends SpringBootServletInitializer {
          
   

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
          
   
        return application.sources(TestApplication.class);
    }

    public static void main(String[] args) {
          
   
        System.setProperty("spring.devtools.restart.enabled", "false");
        SpringApplication application = new SpringApplication(TestApplication.class);
        application.addListeners(new ApplicationPidFileWriter());
        ConfigurableApplicationContext applicationContext = application.run(args);
    }
}

查看启动

配置完之后,启动程序,在配置的路径:/var/run/ 下就会生成 test.pid文件了。

经验分享 程序员 微信小程序 职场和发展