Cómo iniciar el comando Linux en el fondo y separar el proceso en la terminal
- 3373
- 259
- Hugo Vera
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:
- Su terminal de control está lleno de tantos datos de salida y mensajes de error/diagnóstico.
- 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 $ JobsEjecutar 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 $ trabajosIniciar 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 $ trabajosProceso 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 $ JobsMantenga 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 $ JobsPonga 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.
- « Cómo instalar la lámpara con Php 7 y Mariadb 10 en Ubuntu 16.10
- Instalación de Ubuntu 16.10 (yakkety yak) escritorio »