From ee6931b87516ac2caa82fda55ab82e599956b0ef Mon Sep 17 00:00:00 2001 From: liangfei0201 Date: Wed, 18 Jul 2012 13:01:08 +0800 Subject: [PATCH] =?UTF-8?q?DUBBO-500=20=E7=BC=BA=E7=9C=81=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E5=AE=B9=E5=99=A8Main=E7=9A=84ShutdownHook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/alibaba/dubbo/container/Main.java | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/dubbo-container/dubbo-container-api/src/main/java/com/alibaba/dubbo/container/Main.java b/dubbo-container/dubbo-container-api/src/main/java/com/alibaba/dubbo/container/Main.java index 3a76713374..12b1989212 100644 --- a/dubbo-container/dubbo-container-api/src/main/java/com/alibaba/dubbo/container/Main.java +++ b/dubbo-container/dubbo-container-api/src/main/java/com/alibaba/dubbo/container/Main.java @@ -35,6 +35,8 @@ import com.alibaba.dubbo.common.utils.ConfigUtils; public class Main { public static final String CONTAINER_KEY = "dubbo.container"; + + public static final String SHUTDOWN_HOOK_KEY = "dubbo.shutdown.hook"; private static final Logger logger = LoggerFactory.getLogger(Main.class); @@ -55,22 +57,24 @@ public class Main { } logger.info("Use container type(" + Arrays.toString(args) + ") to run dubbo serivce."); - Runtime.getRuntime().addShutdownHook(new Thread() { - public void run() { - for (Container container : containers) { - try { - container.stop(); - logger.info("Dubbo " + container.getClass().getSimpleName() + " stopped!"); - } catch (Throwable t) { - logger.error(t.getMessage(), t); - } - synchronized (Main.class) { - running = false; - Main.class.notify(); - } - } - } - }); + if ("true".equals(System.getProperty(SHUTDOWN_HOOK_KEY))) { + Runtime.getRuntime().addShutdownHook(new Thread() { + public void run() { + for (Container container : containers) { + try { + container.stop(); + logger.info("Dubbo " + container.getClass().getSimpleName() + " stopped!"); + } catch (Throwable t) { + logger.error(t.getMessage(), t); + } + synchronized (Main.class) { + running = false; + Main.class.notify(); + } + } + } + }); + } for (Container container : containers) { container.start();