Ignore:
Timestamp:
2017-07-21T18:37:30+12:00 (7 years ago)
Author:
ak19
Message:

Adding shutdownhook for GS2 to ensure the GS2 server is stopped on Ctrl-C. Tested on Linux.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/gli/src/org/greenstone/gatherer/greenstone/LocalLibraryServer.java

    r24906 r31813  
    3838import org.greenstone.gatherer.Gatherer;
    3939import org.greenstone.gatherer.util.PortFinder;
     40import org.greenstone.gatherer.util.SafeProcess;
    4041import org.greenstone.gatherer.util.Utility;
    4142
     
    399400    if (isPersistentServer) {
    400401        config(QUIT_COMMAND);
    401     } else {       
     402    } else {
    402403        boolean success = sendMessageToServer("QUIT\n");
    403404        try {
     
    451452
    452453    running = false;
     454    }
     455
     456    // This method does the approximate equivalent of util.GSServerThread.stopServer()
     457    // On unexpected, unnatural termination of GLI, call this to send the web-stop message the local library server to stop
     458    static public void forceStopServer() {
     459    SafeProcess p = null;
     460    if (Utility.isWindows()) {
     461        // cmd /C "cd "C:\path\to\greenstone3" && ant stop"
     462        p = new SafeProcess("cmd /C \"cd \"" + Configuration.gsdl_path + File.separator + "\" && gsicontrol.bat web-stop\"");   
     463    } else {
     464        p = new SafeProcess(new String[]{"/bin/bash", "-c", "cd \"" + Configuration.gsdl_path + "\" && ./gsicontrol.sh web-stop"});
     465    }
     466    int result = p.runProcess();
     467    if(result == 0) {
     468        System.err.println("Successfully stopped GS2 server.");
     469        //DebugStream.println("********** SUCCESSFULLY stopped THE GS2 SERVER ON EXIT");
     470    }
     471    else {
     472        System.err.println("********** FAILED TO SUCCESSFULLY stop THE GS2 SERVER ON EXIT");
     473    }
     474    p = null;
    453475    }
    454476   
Note: See TracChangeset for help on using the changeset viewer.