Знаете ли вы, как автоматически сохранять идентификатор процесса приложения Spring Boot?

Spring Boot Linux

1. Введение

добро пожаловать на чтениеSpring Boot 2 Actual Series Статьи.PIDРабота и обслуживание системы знакомы, но для некоторых разработчиков, особенно новичков, все же необходимо кратко представить. этоProcess IDАббревиатура — это уникальный идентификатор, присваиваемый процессу системой, и идентификационный идентификатор каждого процесса.После запуска программы система автоматически присваивает процессу уникальный идентификатор.PID. После того, как процесс завершится,PIDВосстановлено системой и может быть продолжено для запуска новых программ. Обычно известный как进程号.PIDЭто важный параметр для управления процессами нашей системы и важный идентификатор эксплуатации и обслуживания. Например, наш часто используемыйkill -9 <pid>.

2. Процесс применения Spring Boot

jpsдаJavaсобственный просмотр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 трудно идентифицировать PID приложения Spring Boot, сохраняетсяPIDНам удобнее управлятьSpring Bootзаявление.

3. Файл записи PID приложения Spring Boot

Spring BootПредоставляет метод для записи PID приложения в файл при запуске приложения. Конкретная функция определяетсяApplicationPidFileWriterЗаканчивать . Общая логика такова: слушайте событие запуска при запуске приложения иPIDЗапись в указанный файл, по умолчаниюapplication.pid; Путь по умолчанию — текущий путь. Если запись в файл не удалась,PIDЗначение Записать свойство системной переменной средыPID_FAIL_ON_WRITE_ERROR(без учета регистра) или запишите в свойства переменных среды Springspring.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
 */
@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Это было объяснено. По программической конфигурации, вы можетеSpring BootПрименяемыйPIDСохраняйте файл, и вы можете настроить его в соответствии со своими потребностямиPIDфайл хранения. На сегодня это все. Если вы считаете, что это хорошо, пожалуйста, поставьте лайк и перешлите его в поддержку.

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

Личный блог: https://felord.cn