Ejecute el archivo java jar en un servidor como proceso en segundo plano

Necesito ejecutar un java jar en el servidor para poder 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?

#!/bin/sh java -jar /web/server.jar echo $! #> startupApp.pid 

Puedes intentar esto:

 #!/bin/sh nohup java -jar /web/server.jar & 

El símbolo &, cambia el progtwig para que se ejecute en segundo plano.

La utilidad nohup hace que el comando pase como un argumento ejecutado en segundo plano incluso después de cerrar la sesión.

Si está usando Ubuntu y tiene “Upstart” (http://upstart.ubuntu.com/).puede probar esto:

Crea /var/init/yourservice.conf

con el siguiente contenido

 description "Your Java Service" author "You" start on runlevel [3] stop on shutdown expect fork script cd /web java -jar server.jar >/var/log/yourservice.log 2>&1 emit yourservice_running end script 

Ahora puede service yourservice start el service yourservice start y realizar el service yourservice stop comandos de service yourservice stop . Puede /var/log/yourservice.log para 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:

 java -jar /web/server.jar > /var/log/yourservice.log 2>&1 

Systemd que ahora se ejecuta en la mayoría de las distribuciones

Paso 1:

Encuentre sus servicios definidos por el usuario la mina estaba en /usr/lib/systemd/system/

Paso 2:

Cree un archivo de texto con su nombre de editor de texto favorito it whatever_you_want.service

Paso 3:

Coloque la siguiente plantilla en el archivo whatever_you_want.service

 [Unit] Description=webserver Daemon [Service] ExecStart=/usr/bin/java -jar /web/server.jar User=user [Install] WantedBy=multi-user.target 

Etapa 4:

Ejecute su servicio
como super usuario

 $ systemctl start whatever_you_want.service # starts the service $ systemctl enable whatever_you_want.service # auto starts the service $ systemctl disable whatever_you_want.service # stops autostart $ systemctl stop whatever_you_want.service # stops the service $ systemctl restart whatever_you_want.service # restarts the service