J'ai remarqué que Spring Boot imprimait l'identifiant du processus dans le journal lors de son démarrage. Maintenant, je veux écrire un script pour tuer ce processus en utilisant ce pid et redémarrer l'application. Spring Boot fournit-il une api pour obtenir ce pid? Merci!
Spring Boot fournit la classe ApplicationPidFileWriter
, qui écrira ensuite le PID dans un fichier. Vous pouvez l'activer en l'ajoutant en tant qu'écouteur à l'application SpringApplication:
SpringApplication springApplication = new SpringApplication(DemoApplication.class);
springApplication.addListeners(new ApplicationPidFileWriter());
springApplication.run(args);
Le constructeur de ApplicationPidFileWriter
peut également prendre un objet String ou File
avec un nom de fichier personnalisé. Ensuite, vous pouvez lire le PID de ce fichier et l’utiliser dans vos scripts.
j'ai essayé ci-dessous: -
SpringApplication application=new SpringApplication(StartofdayApplication.class);
application.addListeners(new ApplicationPidFileWriter(new File("C:\\temp\\StartofdayApplication.pid")));
application.run(args);
Mais recevoir un avertissement car ApplicationPidFileWriter est obsolète, ma version de printemps est 1.4.7, existe-t-il un moyen alternatif d’obtenir les mêmes résultats?.
Vous pouvez exécuter la commande tasklist pour répertorier les processus actifs et leurs identifiants (PID) apparaîtront.
Vous pouvez aussi les écrire dans un fichier avec le script:
tasklist /v txt > filename.txt
Ensuite, vous pouvez utiliser le script pour lire le fichier et obtenir le pid.
Finalement, vous utiliseriez le script pour tuer le processus.