GNU/Linux >> Tutoriales Linux >  >> Linux

Comprender los comandos de control de trabajos en Linux:bg, fg y CTRL+Z

¿Qué es un trabajo en Linux

Un trabajo es un proceso que gestiona el shell. A cada trabajo se le asigna un ID de trabajo secuencial. Dado que un trabajo es un proceso, cada trabajo tiene un PID asociado. Hay tres tipos de estados de trabajo:
1. Primer plano :cuando ingresa un comando en una ventana de terminal, el comando ocupa esa ventana de terminal hasta que se completa. Este es un trabajo de primer plano.
2. Antecedentes :cuando ingresa un símbolo de y comercial (&) al final de una línea de comando, el comando se ejecuta sin ocupar la ventana del terminal. El indicador de shell se muestra inmediatamente después de presionar Retorno. Este es un ejemplo de un trabajo en segundo plano.
3. Detenido :si presiona Control + Z para un trabajo en primer plano, o ingresa el comando de detención para un trabajo en segundo plano, el trabajo se detiene. Este trabajo se denomina trabajo detenido.

Nota :Excepto el shell Bourne, los otros shells admiten el control de trabajos.

Comandos de control de trabajos

Los comandos de control de trabajos le permiten colocar trabajos en primer o segundo plano e iniciar o detener trabajos. La tabla describe los comandos de control de trabajo.

Opción Descripción
trabajos Enumera todos los trabajos
bg %n Coloca el trabajo actual o especificado en segundo plano, donde n es el ID del trabajo
fg %n Trae el trabajo actual o especificado al primer plano, donde n es el ID del trabajo
Control-Z Detiene el trabajo en primer plano y lo coloca en segundo plano como un trabajo detenido
Nota :Los comandos de control de trabajos le permiten ejecutar y administrar varios trabajos dentro de un shell. Sin embargo, puede usar los comandos de control de trabajos solo en el shell donde se inició el trabajo.

Ejecutar un trabajo en segundo plano

Para ejecutar un trabajo en segundo plano, debe ingresar el comando que desea ejecutar, seguido de un y comercial (&) símbolo al final de la línea de comando. Por ejemplo, ejecute el comando de suspensión en segundo plano.

$ sleep 100 & 
[1] 1302
$

El shell devuelve el ID del trabajo, entre paréntesis, que asigna al comando y el PID asociado. Con la identificación del trabajo, puede usar los comandos de control del trabajo para administrar el trabajo, mientras que el kernel usa PID para administrar los trabajos.

Cuando se completa un trabajo en segundo plano y presiona Retorno, el shell muestra un mensaje que indica que el trabajo se completó.

[1] + Done         sleep 100 &
$

Gestionar los trabajos en segundo plano

Puedes usar los trabajos Comando para enumerar los trabajos que se están ejecutando actualmente o suspendidos en segundo plano.

$ jobs
[1]+  Running                 sleep 100 &

Puede usar el comando fg para traer un trabajo en segundo plano al primer plano.

$ fg % 1
sleep 100
Nota :El trabajo en primer plano ocupa el shell hasta que el trabajo se completa, suspende o detiene y se coloca en segundo plano.

Puedes usar el 'Control+Z teclas y bg Comando para devolver un trabajo al fondo. Las teclas Control+Z suspenden el trabajo y lo colocan en segundo plano como un trabajo detenido. El comando bg ejecuta el trabajo en segundo plano. Por ejemplo:
1. Usando CTRL+Z

$ sleep 100
^Z
[1]+  Stopped                 sleep 100
$ jobs
[1]+  Stopped                 sleep 100

2. Usando bg

$ bg % 1
[1]+ sleep 100 &
$ jobs
[1]+  Running                 sleep 100 &
Nota :cuando coloca un trabajo detenido en primer plano o en segundo plano, el trabajo se reinicia.


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

  2. Introducción a los comandos chgrp y newgrp de Linux

  3. Comandos de Linux:descripción general y ejemplos

  4. Inodes y el sistema de archivos de Linux

  5. Comandos de Linux:trabajos, bg y fg

Cómo ejecutar comandos de Linux en segundo plano

Comprender la diferencia entre los comandos sudo y su en Linux

Busque, estudie y practique los comandos de Linux sobre la marcha usando Tldr++

Los 40 comandos útiles del servidor Linux para principiantes y profesionales

Comprender el comando uname en Linux

Entendiendo el comando time en Linux