Sin embargo, si se encuentra en una carcasa terminal cruda como SSH, a menudo se sentirá preocupado por los procesos que ocupan y bloquean el caparazón hasta que se completen, especialmente en trabajos de larga duración. Ahí es donde entra en juego el concepto de antecedentes y procesos en primer plano.
Este tutorial discutirá qué son los procesos de fondo y primer plano, incluida la creación y administración de ellos en Linux.
¿Qué es un proceso??
Permítame comenzar en el nivel básico: ¿Qué es un proceso??
En Linux, un proceso es una instancia de un programa. Por lo general, esto significa que cualquier comando o ejecutable en un shell es un proceso.
Hay principalmente dos tipos de procesos:
Los procesos en primer plano son principalmente aplicaciones típicas que lanzamos e interactuamos con ellos. Un ejemplo sería el Administrador de archivos Nautilus en GNOME. En la mayoría de los casos, podemos comenzar los procesos de primer plano desde la carcasa o el entorno de escritorio.
Por otro lado, los procesos de fondo se ejecutan en segundo plano y no requieren entrada o interacción del usuario. Un ejemplo sería cualquier demonio típico de Linux.
Cómo ejecutar un proceso en segundo plano
Supongamos que tenemos un proceso que, mientras se ejecuta, ocupa la sesión de shell y nos impide ejecutar comandos hasta que salga.
Por ejemplo, si ejecutamos el navegador Firefox en la carcasa, ocupará la sesión hasta la terminación del proceso.
$ Firefox
Como puede ver, mientras Firefox se esté ejecutando, la solicitud de shell no está disponible y no podemos ejecutar más comandos.
Para resolver esto, podemos hacerlo de dos maneras:
1: Uso de un amperands (&)
El primer método es usar Ampersand & Sign. Esto le dice al shell que ejecute cualquier comando precede a los ampers y en el fondo.
Un ejemplo:
Firefox y
En dicho escenario, el proceso se ejecuta en segundo plano y genera como un nuevo indicador de shell que nos permite continuar ejecutando comandos.
También da dos identificadores numéricos. El primero encerrado en los soportes cuadrados es la identificación del trabajo, mientras que el siguiente es la identificación del proceso.
2: Usando el comando ctrl + z, bg.
El siguiente método que puede usar para poner un proceso en segundo plano es usar el acceso directo CTRL + Z. Esto evita que el proceso bloquee la carcasa. Luego puede usar el comando bg para empujarlo hacia el fondo.
Por ejemplo, comience al lanzar Firefox como:
$ Firefox
Mientras el proceso se ejecuta, presione Ctrl + Z. Esto devuelve tu mensaje de shell. Finalmente, ingrese el comando BG para presionar el proceso en segundo plano.
Cómo mostrar procesos de fondo
Para ver y administrar procesos en segundo plano, use el comando de trabajos en el shell. Que mostrarán los trabajos de fondo en la sesión de terminal actual.
Por ejemplo:
$ empleos
Un ejemplo de salida de trabajos de fondo:
Para llevar un proceso que se ejecuta en segundo plano, use el comando FG seguido del ID de trabajo.
Por ejemplo, para llevar el trabajo de Firefox en primer plano, usamos el comando:
$ FG %1
Para poner en el fondo nuevamente, presione Ctrl + Z seguido del comando BG.
Cómo hacer que un proceso sea persistente después de que shell muera
Cuando está ejecutando procesos en segundo plano, y su sesión de shell muere, todos los procesos asociados con él terminan, lo que puede ser problemático, especialmente si es una sesión de SSH.
Sin embargo, este no es un problema demasiado grande si usa un multiplexor terminal como TMUX o pantalla porque, en ese caso, simplemente puede volver a colocar la sesión.
Sin embargo, si ejecuta una sesión de shell sin un multiplexor, puede usar el comando nohup.
El comando nohup es inmune a las colgaciones y puede ignorar la señal de suspensión enviada a un proceso.
Por lo tanto, si ejecuta un comando con Nohup, continúa ejecutándose incluso si la sesión de shell muere accidentalmente.
Por ejemplo, para ejecutar Firefox con Nohup, use el comando:
Nohup Firefox &
Esto ejecutará el proceso en segundo plano a medida que persista un caparazón termine.
Puede ejecutar una nueva sesión de terminal y ver los trabajos de fondo. Verá que el proceso aún se ejecuta en segundo plano.
Conclusión
En este tutorial, discutimos varias formas de ejecutar y enviar procesos al fondo en Linux. También cubrimos cómo traer un proceso de fondo al fondo y persistir en cuanto a la terminación de la carcasa.