0
votes

Arrêt gracieusement Server Embedded Server sur la commande de la commande de Kill à Linux

Dans mon application Embedded Jetty Server, je souhaite fermer des flux, des exécuteurs, etc. avant qu'il ne soit tué par la commande Kill -9 sous Linux. Comment puis-je gérer cela?

J'ai observé que lorsque mon serveur de jetty est en cours d'exécution et que je délivraie une commande kill -9, puis "tué" des chaînes d'impression dans les journaux et l'application se ferme.

J'ai déjà ajouté LifecyCllistener ajouté en tant que connecteur sur le serveur afin que si mon serveur s'arrête, je peux faire un certain nettoyage avant que l'application ne diminue. Mais cela ne s'appelle pas en cas de kill -9 xxx


0 commentaires

3 Réponses :


0
votes

Utiliser Kill -9 entraînera toujours une résiliation correction de la JVM.

Il n'y a rien que la jetée puisse faire pour contourner cela.

Considérons à la place à l'aide d'une commande sur votre serveur Web (mot de passe protégé évidemment) qui émettra simplement un serveur.stop () . .

ou utilisez JMX et appelez la méthode stop ()


0 commentaires

0
votes

Vous pouvez seulement écouter sur killsig 15 (kill -15) avec un runtime.addshutdownhook () comme runtime.getruntime (). addshutdownhook (nouveau thread);


1 commentaires

Jetty enregistre déjà les crochets d'arrêt d'arrêt du temps, pas besoin d'en ajouter une manuellement.



0
votes

Ce n'est pas possible, désolé. SIGKILL (9) et SIGSTOP (19 sur Linux, 23 sur Solaris) ne peut pas être ignoré ou capturé.


0 commentaires