我注意到 spring boot 在启动过程中在日志中打印了进程 ID。现在我想编写一个脚本来使用这个 pid 终止这个进程并再次启动应用程序。Spring Boot 是否提供任何 api 来获取此 pid?谢谢!
Spring Boot 提供了 class ApplicationPidFileWriter
,然后它将 PID 写入文件。你可以通过将其添加为 SpringApplication 的侦听器来激活它:
SpringApplication springApplication = new SpringApplication(DemoApplication.class);
springApplication.addListeners(new ApplicationPidFileWriter());
springApplication.run(args);
的构造函数ApplicationPidFileWriter
也可以采用字符串或File
具有自定义文件名的对象。然后你可以从该文件中读取 PID 并在你的脚本中使用它。
这对我不起作用。日志也写入pid文件。你有遇到过这样的情况吗?
创建一个新问题并提供相关详细信息(代码片段等)。
要为答案添加更多细节,您可以通过在启动应用程序时提供 --spring.pidfile 参数来配置此文件的位置