En este post veremos distintos métodos para ejecutar comandos en segundo plano.
Ejecutar un comando en segundo plano (background) significa que ya no tendremos que esperar a que se ejecute el comando en su totalidad para ejecutar el siguiente comando.
Linux: Ejecutar comando en segundo plano: ampersand (&)
El primer método para ejecutar un comando en segundo plano es utilizar el ampersand (&)
comando &
Ejemplo:
[root@LINUX1 ~]# sleep 8 &
[1] 1463
Tras ejecutar sleep 8 &, el comando sleep 8, quedará en background.
sleep 8, hace una pausa de 8 segundos.
Si ejecutamos el comando jobs, veremos el comando funcionando en segundo plano:
[root@LINUX1 ~]# jobs
[1]+ Running sleep 8 &
También, transcurrida la ejecución del comando, veremos por pantalla un aviso de su finalización.
[root@LINUX1 ~]#
[1]+ Done sleep 8
Linux: Ejecutar comando en segundo plano: &, bg y fg
bg -> Trae el proceso a segundo plano.
fg -> Trae el proceso a primer plano.
Con el & ejecutamos el proceso en segundo plano. Con los comandos bg y fg podemos pasar el proceso de segundo plano a primer plano y viceversa.
Ejemplo:
[root@LINUX1 ~]# sleep 30 &
[1] 1481
[root@LINUX1 ~]#
[root@LINUX1 ~]# fg %1
sleep 30
Enviamos comando a segundo plano con ampersand (&) y luego con fg %1 traemos el proceso a primer plano.
Linux: Ejecutar comando en segundo plano: screen
Con el comando screen podemos ejecutar una serie de comandos en segundo plano.
Su funcionamiento es muy sencillo, veamos un ejemplo:
screen
comando1
comando2
comando3
Control+a d
Al pulsar: Control+a d aparecerá por pantalla: "[detached from" y quedaremos desvinculados de "screen", esa sesión quedará en segundo plano y por tanto todos los procesos quedarán funcionando en segundo plano.
Lo ideal seria iniciar la sesión con un nombre, ejemplo:
screen -S sesion1
De esta forma podemos identificar a la sesión por el nombre.
Si por ejemplo ejecutamos:
[root@LINUX1 ~]# screen -ls
There are screens on:
1436.sesion1 (Attached)
1410.pts-0.LINUX1 (Detached)
2 Sockets in /run/screen/S-root.
Veremos la sesión de screen a la que estamos conectados con su respectivo nombre.
Para salir de la sesión de screen, ejecutaremos: exit
No hay comentarios:
Publicar un comentario