Cómo iniciar el comando Linux en el fondo y separar el proceso en la terminal

Cómo iniciar el comando Linux en el fondo y separar el proceso en la terminal

En esta guía, sacaremos a la luz un concepto simple pero importante en el manejo de procesos en un sistema de Linux, que es cómo separar completamente un proceso de su terminal de control.

Cuando un proceso está asociado con un terminal, pueden ocurrir dos problemas:

  1. Su terminal de control está lleno de tantos datos de salida y mensajes de error/diagnóstico.
  2. En el caso de que el terminal esté cerrado, el proceso junto con sus procesos infantiles se terminará.

Para lidiar con estos dos problemas, debe separar totalmente un proceso de una terminal de control. Antes de que nos movemos para resolver el problema, cubramos brevemente cómo ejecutar procesos en segundo plano.

Cómo iniciar un proceso o comando de Linux en segundo plano

Si un proceso ya está en ejecución, como el ejemplo del comando de alquitrán a continuación, simplemente presione CTRL+Z Para detenerlo, ingrese el comando BG Continuar con su ejecución en segundo plano como trabajo.

Puede ver todos sus trabajos de fondo escribiendo trabajos. Sin embargo, es stdin, stdout, stderr todavía están unidos a la terminal.

$ tar -czf casa.alquitrán.GZ . $ BG $ Jobs 
Ejecutar el comando Linux en el fondo

También puede ejecutar un proceso directamente desde el fondo utilizando el amperand, Y firmar.

$ tar -czf casa.alquitrán.GZ . y $ trabajos 
Iniciar el proceso de Linux en el fondo

Eche un vistazo al ejemplo a continuación, aunque el comando TAR se inició como un trabajo de fondo, todavía se envió un mensaje de error al terminal, lo que significa que el proceso todavía está conectado al terminal de control.

$ tar -czf casa.alquitrán.GZ . y $ trabajos 
Proceso de Linux que se ejecuta en un mensaje de fondo

Mantenga los procesos de Linux en ejecución después de salir de la terminal

Usaremos renegar de Comando, se usa después de que se haya lanzado y puesto en segundo plano el proceso, su trabajo es eliminar un trabajo de shell de los trabajos de la lista activa del shell, por lo tanto, no usará FG, BG comandos en ese trabajo en particular ya.

Además, cuando cierra el terminal de control, el trabajo no colgará ni enviará un Suspiro a cualquier trabajo infantil.

Leer sugerido: 5 formas de mantener en funcionamiento sesiones y procesos de SSH

Echemos un vistazo al siguiente ejemplo de uso disco Función incorporada.

$ sudo rsync plantillas/*/var/www/html/files/y $ Jobs $ Desnown -h %1 $ Jobs 
Mantenga el proceso de Linux en ejecución después de cerrar la terminal

También puedes usar nohup comando, que también permite que un proceso continúe ejecutando en segundo plano cuando un usuario sale de un shell.

$ nohup tar -czf iso.alquitrán.Plantillas GZ/* y $ Jobs 
Ponga el proceso de Linux en el fondo después de cerrar el shell

Separar los procesos de Linux por el control de la terminal

Por lo tanto, para separar completamente un proceso de un terminal de control, use el formato de comando a continuación, esto es más efectivo para la interfaz gráfica de usuario (Guía) Aplicaciones como Firefox:

$ Firefox /Dev /Null & 

En Linux, /dev/nulo es un archivo de dispositivo especial que escribe (elimina) todos los datos escritos, en el comando anterior, se lee la entrada y la salida se envía a /dev/nulo.

Leer sugerido: 10 ejemplos de comando de pantalla para separar las sesiones de terminales

Como comentario final, siempre que un proceso esté conectado a un terminal de control, como usuario, verá varias líneas de salida de los datos del proceso, así como mensajes de error en su terminal. Una vez más, cuando cierre el terminal de control, su proceso y los procesos infantiles se terminarán.

Es importante destacar que, para cualquier pregunta o comentario sobre el tema, comuníquese con nosotros utilizando el formulario de comentarios a continuación.