Cómo ejecutar comandos de Linux en segundo plano

Los comandos de Linux son una excelente forma de interactuar con el sistema mediante el terminal. Sin embargo, a veces puede llevar un tiempo terminar la tarea en cuestión. Esto obliga a los usuarios a esperar un tiempo considerable o generar un nuevo shell por completo.

Afortunadamente, puede ejecutar comandos de Linux en segundo plano siguiendo algunos métodos simples. El resto de este artículo ilustra algunos de estos métodos.

1. Agregue un ampersand después de su comando

La forma más sencilla de ejecutar un comando en segundo plano de Linux es agregar un símbolo Ampersand ( & ) después del comando. Por ejemplo, si inicia el editor de texto gedit desde su terminal, no podrá usar el shell hasta que cierre el editor. Sin embargo, cuando agrega un & adicional a su comando, podrá usar el shell inmediatamente.

 gedit &

2. Utilice bg para enviar comandos en ejecución al fondo

A veces, ejecuta un comando solo para descubrir que tarda mucho más en finalizar. Puede enviar fácilmente estos comandos al fondo presionando las teclas Ctrl + Z y luego usando el comando bg . Ctrl + Z detiene el proceso en ejecución y bg lo lleva a un segundo plano.

Puede ver una lista de todas las tareas en segundo plano escribiendo trabajos en la terminal. Utilice el comando fg para volver a la tarea en ejecución.

3. Envíe comandos al fondo con nohup

El comando nohup en Linux permite a los administradores ejecutar comandos de terminal que son inmunes a las señales HUP o Hang Up . Puede ejecutar comandos de Linux en segundo plano usando nohup.

El siguiente ejemplo ejecuta un escaneo de puertos Nmap en segundo plano.

 nohup sudo nmap -sS --top-ports=15 192.168.1.1/24

Un beneficio clave de nohup es que sus comandos se ejecutarán incluso si sale del shell. Además, genera archivos de registro de la ejecución. Busque nohup.out en el directorio actual o dentro de $ HOME.

4. Ejecute comandos en segundo plano mediante redireccionamientos del sistema

También puede ejecutar comandos en segundo plano en Linux mediante redireccionamientos del sistema. Por ejemplo, si ejecuta el comando ping a continuación, su shell lo ejecutará en segundo plano e inmediatamente devolverá el indicador del terminal.

 ping -c5 8.8.8.8 >output.log 2>&1 &

Aquí, la salida del comando ping se redirige al archivo output.log . Puede reemplazarlo con / dev / null si desea descartar el resultado. El 2> & 1 le dice a bash que redirija cualquier error al mismo archivo. El & le indica a bash que ejecute este comando en segundo plano.

5. Configure los comandos de Linux en segundo plano usando disown

El comando disown en Linux facilita la ejecución de comandos en segundo plano. Primero, debe enviar la tarea en segundo plano utilizando el operador & . Luego, escriba disown para separarlo de su caparazón.

 gedit &
disown

Una de las principales ventajas de disown es que, como nohup, el sistema no matará su tarea cuando cierre su shell o cierre la sesión.

6. Ejecute comandos de Linux en segundo plano usando Tmux

Tmux es un potente multiplexor que nos permite ejecutar múltiples sesiones de terminal dentro de una sola ventana. Aprender tmux es una excelente opción para las personas que no están familiarizadas con él. Tmux facilita la ejecución de comandos en segundo plano en Linux.

 tmux new -d 'ping -c 10 8.8.8.8 > output.log'

Cuando ejecute el comando tmux anterior, ejecutará el comando ping en un shell separado y lo mantendrá en segundo plano. Puede ejecutar cualquier comando de Linux en segundo plano utilizando este método.

Relacionado Cómo instalar y configurar Tmux para Linux

Deje sus comandos de Linux en segundo plano

Tener la capacidad de ejecutar comandos en segundo plano hace que la administración del sistema sea más productiva para los administradores. Puede poner en segundo plano sus tareas de varias formas. Las funciones de Bash como & y Ctrl + Z son convenientes, pero el sistema eliminará el trabajo en segundo plano cuando se cierre el shell. Por otro lado, herramientas como nohup y disown mantienen su comando en ejecución incluso cuando cierra la sesión o termina el shell.

Si deja sus programas en segundo plano durante mucho tiempo, pueden convertirse en procesos zombis si no están codificados correctamente. Estos procesos pueden ralentizar significativamente el sistema. Por lo tanto, asegúrese de identificar y eliminar los procesos zombies de vez en cuando.