Tengo un par de comandos que necesito ejecutar. Estos comandos deben ejecutarse continuamente incluso después de que salga de mi interfaz. Cuando tengo acceso a la GUI de Linux, ejecuto algo como:
cd /home/testuser/Scripts*
xterm -hold -T "Background_Script1" -e "service1-start.sh" &
sleep 10
xterm -hold -T "Background_Script2" -e "service2-start.sh" &
Cualquier ayuda será muy apreciada.
linux
command-line
putty
process
gnu-screen
usuario3331952
fuente
fuente
set -m;
hace que mis scripts continúen ejecutándose después de cerrar sesión en CentOS y RHEL.Respuestas:
Tratar
nohup asegura que un proceso no finaliza cuando se cierra un terminal. El símbolo & empuja el proceso a un segundo plano.
Espero que esto haya sido útil.
fuente
nohup
, básicamente es "sin colgar" - con nohup, laHUP
señal de colgar ( ) se ignora.Si desea leer la salida en una fecha posterior, puede usar
screen
:Esto le proporciona un terminal separado al que puede conectarse más tarde (
screen -r
) para leer la salida stdout / stderr.fuente
screen -r
), también tendrá toda la salida que produjo su programa y, de lo contrario, se habría "perdido". Además, la pantalla puede hacer muchas cosas increíbles, como pantallas divididas, etc. :)Otra opción si el
nohup
comando no está disponible es usar el comando disown .Primero puede ver sus tareas en segundo plano ejecutando
jobs
en la terminal. Puede obtener el número de trabajo desde allí.Ahora solo ejecute
disown %[job number]
y el proceso se desconectará de la terminal actual y permanecerá vivo cuando cierre la sesión.Nota al margen: asegúrese de hacer la pregunta correcta. Si está ejecutando servicios reales como insinúa en su muestra, es posible que desee ver cómo crear un demonio en el sistema operativo que elija. Esto es para asegurarse de que el proceso aún se ejecuta después de un reinicio y hacerlo más consistente con otros servicios.
Espero que esto ayude.
fuente
Como
screen
se ha mencionado: existen otros multiplexores de terminales por ahí. Me gustatmux
mucho, vea, por ejemplo, esta otra pregunta de superusuario, tmux vs screen para una comparación.fuente
También puede probar:
setsid
Setsid también funciona con programas en segundo plano y les permite seguir ejecutándose después de que se desconecta la sesión de terminal / ssh.Úselo así:
Página de manual: http://man7.org/linux/man-pages/man2/setsid.2.html
fuente