Nuestros mejores desarrolladores agotaron sus reservas de café, por su búsqueda a tiempo completo por la solución, hasta que Angélica halló el resultado en Bitbucket y hoy la comparte con nosotros.
Solución:
Puedes probar esto:
#!/bin/sh
nohup java -jar /web/server.jar &
El símbolo & cambia el programa para que se ejecute en segundo plano.
La utilidad nohup hace que el comando pasado como argumento se ejecute en segundo plano incluso después de cerrar la sesión.
sistemad que ahora se ejecuta en la mayoría de las distribuciones
Paso 1:
Encuentre sus servicios definidos por el usuario, el mío estaba en /usr/lib/systemd/system/
Paso 2:
Cree un archivo de texto con su nombre de editor de texto favorito whatever_you_want.service
Paso 3:
poner siguiente
Plantilla al 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 superusuario
$ 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
Si está usando Ubuntu y tiene “Upstart” (http://upstart.ubuntu.com/), puede probar esto:
Crear /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 emitir el service yourservice start
y service yourservice stop
comandos puedes seguir /var/log/yourservice.log
para comprobar que funciona.
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