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
Encuentre sus servicios definidos por el usuario la mina estaba en /usr/lib/systemd/system/
Cree un archivo de texto con su nombre de editor de texto favorito it whatever_you_want.service
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
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