Hola Kalpa,
Tu aplicación web se está ejecutando dentro de un contenedor de servlet que te proporciona el tiempo de ejecución elegido (es decir: Java Web Tomcat 8).
Dado que el contenedor es responsable del ciclo de vida de tu aplicación, nunca debes llamar a System.exit(0). Esto no es algo de SCP. Llamar a System.exit(0) apagará toda la VM responsable de Tomcat.
Aquí tienes mi opinión sobre el reinicio: SCP es responsable de la salud de la aplicación. La terminación de una VM puede considerarse por SCP un problema crítico, ya que nadie ha ordenado detener la aplicación. Por lo tanto, puede intentar reiniciar todo el contenedor en un intento de devolver el estado de la aplicación a la normalidad. Estas son mis suposiciones.
Si realmente necesitas detener tu aplicación de forma segura, debes conectarte al puerto de apagado y escribir la palabra SHUTDOWN.
try {
Socket socket = new Socket("localhost", 8005); //este es el estándar en server.xml en el SDK
if (socket.isConnected()) {
PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);
pw.println("SHUTDOWN");//enviar comando de apagado - también estándar
pw.close();
socket.close();
}
} catch (Exception e) {
e.printStackTrace();
}
Saludos,
Ivan