View Javadoc

1   /*
2    * Copyright (c) 1998-2002 The Jgroup Team.
3    *
4    * This program is free software; you can redistribute it and/or modify
5    * it under the terms of the GNU Lesser General Public License version 2 as
6    * published by the Free Software Foundation.
7    *
8    * This program is distributed in the hope that it will be useful,
9    * but WITHOUT ANY WARRANTY; without even the implied warranty of
10   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11   * GNU Lesser General Public License for more details.
12   *
13   * You should have received a copy of the GNU Lesser General Public License
14   * along with this program; if not, write to the Free Software
15   * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16   *
17   */
18  
19  package jgroup.arm;
20  
21  import java.util.Enumeration;
22  import java.util.StringTokenizer;
23  
24  import jgroup.core.ConfigManager;
25  import jgroup.core.arm.ExecService;
26  import jgroup.core.registry.BootstrapRegistry;
27  
28  /**
29   * Shutdown the execution service on the given host.
30   * 
31   * @author Hein Meling
32   * @since Jgroup 2.1
33   */
34  public class ShutdownHost
35  {
36  
37    ////////////////////////////////////////////////////////////////////////////////////////////
38    // Main method
39    ////////////////////////////////////////////////////////////////////////////////////////////
40  
41    public static void main(String[] args)
42      throws Exception
43    {
44      ConfigManager.init();
45      String hosts = System.getProperty("jgroup.shutdown.hosts");
46      if (hosts == null || hosts.length() == 0) {
47        throw new IllegalArgumentException("No hosts specified for shutdown");
48      }
49      Enumeration hostsEnum = new StringTokenizer(hosts, ",");
50      int delay = 0;
51      while (hostsEnum.hasMoreElements()) {
52        String host = (String) hostsEnum.nextElement();
53        System.out.println("Shutdown: " + host);
54        ExecService es = (ExecService) BootstrapRegistry.lookup(host, ExecService.EXEC_DAEMON_NAME);
55        es.shutdown(delay);
56        delay += 200;
57      }
58      System.exit(0);
59    }
60  
61  } // END ShutdownHost