亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Linux 中發出 kill 命令時優雅地停止嵌入式碼頭服務器

在 Linux 中發出 kill 命令時優雅地停止嵌入式碼頭服務器

慕碼人2483693 2022-09-14 15:36:06
在我的嵌入式 Jetty 服務器應用程序中,我想在 linux 中的 kill -9 命令殺死它之前關閉一些流、執行器等。我該如何處理?我觀察到,當我的 jetty 服務器正在運行時,我發出 kill -9 命令,然后“Killed”字符串打印在日志中,應用程序關閉。我已經添加了作為服務器連接器的LifeCyCleCleListener,以便如果我的服務器停止,我可以在應用程序關閉之前進行一些清理。但是在殺戮-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());            .....    }
查看完整描述

3 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

使用將始終導致 JVM 的嚴格終止。kill -9

Jetty無能為力來解決這個問題。

請考慮在 Web 服務器上使用命令(顯然受密碼保護),該命令只會發出 .Server.stop()

或者使用 JMX 并調用服務器的方法。(這可以通過JMX控制臺/ JMX瀏覽器/甚至JMX命令行來完成)stop()


查看完整回答
反對 回復 2022-09-14
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

這是不可能的,對不起。 (9) 和 (Linux 上有 19 個,Solaris 上有 23 個)不能被忽視或捕獲。SIGKILLSIGSTOP



查看完整回答
反對 回復 2022-09-14
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

你只能用運行時收聽(殺死-15)。KILLSIG 15Runtime.getRuntime().addShutdownHook(new Thread());



查看完整回答
反對 回復 2022-09-14
  • 3 回答
  • 0 關注
  • 98 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號