Necesito ejecutar un jar de Java en el servidor para comunicarme entre dos aplicaciones. He escrito dos scripts de shell para ejecutarlo, pero una vez que inicie ese script, no puedo cerrar/finalizar el proceso. Si presiono ctrl + C o cierro la consola, el servidor se apagará. ¿Alguien podría ayudarme a modificar esta secuencia de comandos para que se ejecute como un servidor normal?Ejecutar el archivo jar de Java en un servidor como proceso de fondo
#!/bin/sh
java -jar /web/server.jar
echo $!
#> startupApp.pid
Gracias Anton, actualmente estoy deteniendo el servidor matando el id del proceso. No creo que sea una buena práctica. ¿Hay un comando para detener el servidor? –
Respuesta corta: depende del servidor. Respuesta larga: hasta donde yo sé, no hay una forma segura de cerrar un proceso sin que el proceso respalde tales cierres tan elegantes. Por ejemplo, si se trata de un servidor web terminado por una señal externa, siempre existe la posibilidad de que se pierdan algunas solicitudes. Una forma de resolver este problema es implementar una función de terminación elegante en el servidor mismo, p. procesando un tipo especial de solicitudes. Entonces, el servidor puede ser terminado enviándole una solicitud de ese tipo especial. De lo contrario, matar el proceso por su ID es la manera más simple. –