Si tiene una tarea de larga duración, no siempre es aconsejable esperar a que termine. Quiero decir, ¿por qué mantener la terminal ocupada para un comando en particular? En Linux, puede enviar un comando o proceso a segundo plano para que el comando se ejecute, pero el terminal estará libre para ejecutar otros comandos.
En este tutorial, le mostraré un par de formas de enviar un proceso en segundo plano. También le mostraré cómo hacer que los procesos en segundo plano vuelvan a estar en primer plano.
Iniciar un proceso Linux en segundo plano directamente
Si sabe que el comando o el proceso llevará mucho tiempo, sería una mejor idea iniciar el comando en segundo plano.
Para ejecutar un comando de Linux en segundo plano, todo lo que tiene que hacer es agregar el ampersand (&) al final del comando, así:
your_command &
Tomemos un comando bash sleep simple y enviémoslo al fondo.
sleep 60 &
Cuando el comando finalice en segundo plano, debería ver información al respecto en la terminal.
[1]+ Done sleep 60
Enviar un proceso Linux en ejecución a segundo plano
Si ya ejecutó un programa y luego se dio cuenta de que debería haberlo ejecutado en segundo plano, no se preocupe. También puede enviar un proceso en ejecución a un segundo plano.
Lo que tienes que hacer aquí es usar Ctrl+Z para suspender el proceso en ejecución y luego use 'bg ' (abreviatura de fondo) para enviar el proceso en segundo plano. El proceso suspendido ahora se ejecutará en segundo plano.
running_command
^z
bg
Tomemos el mismo ejemplo que antes.
[email protected]:~$ sleep 60
^Z
[1]+ Stopped sleep 60
[email protected]:~$ bg
[1]+ sleep 60 &
Ver todos los procesos que se ejecutan en segundo plano
Ahora que sabe cómo enviar los procesos en segundo plano, es posible que le interese saber qué comandos se ejecutan en segundo plano.
Para este propósito, puede ingresar este comando en la terminal:
jobs
Primero pongamos algunos comandos en segundo plano.
firefox &
gedit &
vim &
Ahora el comando de trabajos le mostrará todos los trabajos/procesos/comandos en ejecución en segundo plano de esta manera:
jobs
[1] Running firefox &
[2]- Running gedit &
[3]+ Stopped vim
¿Observas los números [1], [2] y [3], etc.? Estas son las identificaciones de trabajo. También notará los signos – y + en dos de los comandos. El signo + indica el último trabajo que ha ejecutado o puesto en primer plano. El signo – indica el penúltimo trabajo que ejecutó o puso en primer plano.
Traer un proceso a primer plano en Linux
¡Bien! Así que aprendiste a ejecutar comandos en segundo plano en Linux. Pero, ¿qué hay de volver a poner en primer plano un proceso que se ejecuta en segundo plano?
Para enviar el comando al fondo, usó 'bg'. Para recuperar el proceso en segundo plano, use el comando 'fg'.
fg
Ahora, si simplemente usa fg, traerá el último proceso en la cola de trabajos en segundo plano al primer plano. En nuestro ejemplo anterior, ejecutar 'fg' devolverá el editor Vim a la terminal.
Si desea traer un determinado proceso al primer plano, debe especificar su ID de trabajo. La identificación del trabajo es el número que ve al principio de cada línea en la salida del comando 'trabajos'.
fg n
Donde n es la identificación del trabajo como se muestra en la salida de los trabajos del comando.
Eso es
Esta fue rápida pero suficiente para que aprendas algunas cosas sobre la ejecución de comandos en segundo plano en Linux. Aconsejaría aprender el comando nohup también. Este comando le permite ejecutar comandos en segundo plano incluso después de cerrar la sesión.
Si tiene preguntas o sugerencias, deje un comentario a continuación.