В моем встроенном серверном приложении Jetty я хочу закрыть несколько потоков, исполнителей и т. Д. До его уничтожения командой kill -9 в linux. Как мне справиться с этим?
Я заметил, что когда мой джет-сервер работает и я запускаю команду kill -9, в журналах печатаются строки «Killed», и приложение закрывается.
Я уже добавил LifeCycleListener, добавленный в качестве соединителя к серверу, так что, если мой сервер останавливается, я могу выполнить некоторую очистку, прежде чем приложение выйдет из строя. Но это не вызывается в случае kill -9
server = new Server();
loadConnectors(server);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
context.setContextPath("/");
server.setHandler(context);
ServletHolder jerseyServlet = context.addServlet(ServletContainer.class, "/*");
jerseyServlet.setInitOrder(0);
// Tells the Jersey Servlet which REST service/class to load.
jerseyServlet.setInitParameter("jersey.config.server.provider.classnames", Resources.class.getCanonicalName());
server.setStopAtShutdown(true);
server.start();
logger.debug("Reached this line");
private void loadConnectors(Server server) {
//----Http connection setup------------------
ServerConnector connector = new ServerConnector(server);
connector.setPort(9025);
connector.addLifeCycleListener(new ConnectorListener());
.....
}