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/Gatherer.java

    r31718 r31813  
    383383                if (!GS3) {     
    384384                    isLocalLibrary = LocalLibraryServer.start(gsdl_path, local_library_path);
     385
     386                    // Add a shutdown hook to take care of Ctrl-C situations
     387                    // Sadly, neither the shutdownhook for GS3 nor for GS2 ever gets called on Windows
     388                    // when a Ctrl-C is sent to the DOS prompt that launched GLI:
     389                    // GLI on Windows currently waits to respond to a Ctrl-C until after GLI is already (properly) exited
     390                    Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
     391                        public void run() {
     392
     393                            if(Gatherer.exit != true) { // unexpected termination, such as Ctrl-C won't set Gatherer.exit
     394                            // so still need to at least issue the call to stop any running GS2 local library server
     395                            System.err.println("ShutDownHook called...");
     396                            System.err.println("Attempting to forcibly terminate the GS2 server...");
     397                           
     398                            if (LocalLibraryServer.isRunning() == true) {
     399                                LocalLibraryServer.forceStopServer();
     400                            }
     401
     402                           
     403                            } else {
     404                            System.err.println("Gatherer.exit is false");
     405                            }
     406                        }
     407                        }));
     408                   
    385409                }
    386410                else if (!isGsdlRemote) { // local GS3, start the local tomcat
     
    394418                    // https://coderanch.com/t/328888/java/Killing-process-spawned-Runtime-exec
    395419                    Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
    396                         public void run() {                    
     420                        public void run() {                        
    397421
    398422                            if(Gatherer.exit != true) { // unexpected termination, such as Ctrl-C won't set Gatherer.exit
Note: See TracChangeset for help on using the changeset viewer.