GNU/Linux >> Tutoriales Linux >  >> Linux

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


Linux
  1. Ver comandos y tareas con el comando watch de Linux

  2. Cómo guardar comandos de Linux y usarlos bajo demanda

  3. Comandos de Linux:trabajos, bg y fg

  4. Comandos Linux de la A a la Z

  5. 5 formas de ejecutar comandos UNIX/Linux (y scripts de shell) en segundo plano

Cómo ejecutar comandos de Linux en segundo plano

Comandos básicos de Linux

Comandos de Linux - Guía completa

Cómo ejecutar automáticamente secuencias de comandos y comandos de inicio de Linux

Cómo trabajar con procesos en primer plano y en segundo plano en Linux

Ponga un temporizador en sus comandos en ejecución con el comando de tiempo de espera en Linux