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. P>
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 p>
3 Réponses :
Utiliser Il n'y a rien que la jetée puisse faire pour contourner cela. P>
Considérons à la place à l'aide d'une commande sur votre serveur Web (mot de passe protégé évidemment) qui émettra simplement un ou utilisez JMX et appelez la méthode Kill -9 code> entraînera toujours une résiliation correction de la JVM. P>
serveur.stop () code>. p>.
stop () ) du serveur. (Cela peut être fait via une console JMX / JMX Navigateur / ou même une ligne de commande JMX) P>
Vous pouvez seulement écouter sur killsig 15 code> (kill -15) avec un runtime.addshutdownhook () comme
runtime.getruntime (). addshutdownhook (nouveau thread); Code > p>
Jetty enregistre déjà les crochets d'arrêt d'arrêt du temps, pas besoin d'en ajouter une manuellement.
Ce n'est pas possible, désolé. SIGKILL CODE> (9) et
SIGSTOP CODE> (19 sur Linux, 23 sur Solaris) ne peut pas être ignoré ou capturé. P>