¿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.
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 |
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 100Nota :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
$ 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.