Ejecución de comandos de Linux en segundo plano y en primer plano

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 oprocesoen 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 devolver los procesos en segundo plano al primer plano.

Inicie un proceso de 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 simple bash comando de suspensión y enviarlo a segundo plano.

sleep 60 &

Cuando el comando finaliza en segundo plano, debería ver información al respecto en la terminal.

[1]+  Done                    sleep 60

Enviar un proceso de Linux en ejecución al fondo

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 al fondo.

Lo que tienes que hacer aquí esutilizar Ctrl+Zpara 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 lo mismo example como 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

¿Te fijas en los números?

,

y

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.

fg

Llevar 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?

fg n

Para enviar el comando al fondo, usó ‘bg’. Para recuperar el proceso en segundo plano, use el comando ‘fg’.

Ahora, si simplemente usa fg, traerá el último proceso en la cola de trabajos en segundo plano al primer plano. En nuestro anterior exampleal ejecutar ‘fg’, el editor de Vim volverá 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 comienzo de cada línea en la salida del comando ‘trabajos’.

Donde n es la identificación del trabajo como se muestra en la salida de los trabajos del comando.

Correo

Próximo