En los sistemas Linux y Unix, un trabajo se define como una tarea que ha comenzado a ejecutarse y aún no se ha completado. Cada tarea es básicamente programas en ejecución que es un proceso.
A cada trabajo se le asigna una identificación única llamada número de trabajo (ID de trabajo). Podemos ejecutar los trabajos en segundo plano sin ninguna intervención del usuario y también ejecutarlos en primer plano como trabajos actuales.
En este tutorial, aprendemos sobre los comandos fg y bg para administrar trabajos en Linux.
comando bg
Los procesos que han sido detenidos por alguna señal de interrupción pueden continuar en segundo plano con el comando bg.
$ nautilus
^Z
[1]+ Stopped nautilus
Este proceso se ha detenido con ctrl+z
señal de interrupción. Los procesos detenidos se pueden verificar con el comando de trabajos. Pero antes de comprobar, vamos a crear otro trabajo e interrumpirlo con una señal de parada.
$ jedit
9:22:28 AM [main] [warning] jEdit: inifPLAF failed to set required l&f
9:22:29 AM [main] [warning] jEdit: inifPLAF failed to set required l&f
^Z
[2]+ Stopped jedit
$ jobs
[1]- Stopped nautilus
[2]+ Stopped jedit
Puede ver que el estado de los trabajos está detenido. El signo más (+) indica el trabajo actual. El signo menos (-) se refiere al trabajo anterior. Ahora, para ejecutar el trabajo detenido en segundo plano, usamos el comando bg. De forma predeterminada, si no se proporciona ningún argumento, bg ejecuta el trabajo actual en segundo plano.
$ bg
[2]+ jedit &
$ jobs
[1]+ Stopped nautilus
[2]- Running jedit &
El comando bg puede tomar el número de trabajo como argumento. El número de trabajo se indica entre corchetes en la salida de trabajos.
En el ejemplo anterior, el número de trabajo de nautilus es 1. Ahora usamos este número de trabajo para ejecutar el trabajo en segundo plano. El %
se requiere firmar para indicar el número de trabajo.
$ bg %1
[1]+ nautilus &
$ jobs
[1]- Running nautilus &
[2]+ Running jedit &
El comando bg también puede hacer referencia a un trabajo por su nombre. Por ejemplo %String
se refiere a un trabajo cuyo nombre comienza con la cadena especificada y %?String
se refiere a un trabajo cuyo nombre contiene la cadena especificada.
Por ejemplo, tenemos dos trabajos detenidos.
$ jobs
[1]+ Stopped nautilus
[2]- Stopped jedit
$ bg %nau
[1]+ nautilus &
$ jobs
[1]- Running nautilus &
[2]+ Stopped jedit
$ bg %?ed
[2]+ jedit &
$ jobs
[1]- Running nautilus &
[2]+ Running jedit &
comando fg
El comando fg es como el comando bg excepto que en lugar de enviar un comando en segundo plano, lo ejecuta en primer plano y ocupa la terminal actual y espera a que finalice el proceso.
# jobs
[1]- Stopped makewhatis
[2]+ Stopped vi
Sin ningún argumento, fg ejecutará el trabajo actual en primer plano (vi en este caso).
# fg
vi
Como el comando se ejecuta en primer plano, no recuperamos la terminal hasta que finaliza el comando. Por lo tanto, el comando de trabajos ahora mostrará solo un trabajo, ya que vi saldrá ahora.
# jobs
[1]+ Stopped makewhatis
# fg %1
makewhatis
# jobs
No queda trabajo. Como bg, %String
y %?String
también funciona para fg.
# jobs
[1]- Stopped makewhatis
[2]+ Stopped vi
# fg %v
vi
# fg %?what
makewhatis
Conclusión
En este tutorial, aprendimos cómo controlar el trabajo usando los comandos fg y bg usando algunos ejemplos. Espero que hayan disfrutado y dejen sus sugerencias en la sección de comentarios a continuación.