整体描述
在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文件了。