shell - procesos - pasar proceso a segundo plano linux
Ejecute el archivo java jar en un servidor como proceso en segundo plano (3)
Puedes intentar 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 pase como un argumento ejecutado en segundo plano incluso después de cerrar la sesión.
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
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