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 inicio ese script, no puedo cerrar / terminar el proceso. Si presiono ctrl+ Co cierro la consola, el servidor se apagará. ¿Alguien podría ayudarme a modificar este script para que se ejecute como un servidor normal?
#!/bin/sh
java -jar /web/server.jar
echo $!
#> startupApp.pid
shell
unix
executable-jar
Bernad Ali
fuente
fuente

nohupsiempre debe combinarse con la redirección de stdout y stderr explícitamente; de lo contrario, no obtendrá control de dónde van los registros y terminará con un feonohup.outcreado en cualquier directorio desde el que se invoque este script.Systemd que ahora se ejecuta en la mayoría de distribuciones
Paso 1:
Encuentra tus servicios definidos por el usuario en los que estaba el mío
/usr/lib/systemd/system/Paso 2:
Cree un archivo de texto con su nombre de editor de texto favorito
whatever_you_want.servicePaso 3:
Ponga la siguiente plantilla en el archivo
whatever_you_want.servicePaso 4:
Ejecute su servicio
como superusuario
fuente
Si está usando Ubuntu y tiene "Upstart" ( http://upstart.ubuntu.com/ ) puede probar esto:
Crear
/var/init/yourservice.confcon el siguiente contenido
Ahora puede emitir los comandos
service yourservice startyservice yourservice stop. Puede seguir/var/log/yourservice.logpara verificar que está funcionando.Si solo desea ejecutar su jar desde la consola sin que acapare la ventana de la consola, puede hacer lo siguiente:
fuente
java -jar /web/server.jar > /var/log/yourservice.log 2>&1 &Ejecute en segundo plano y agregue registros al archivo de registro utilizando lo siguiente:
fuente