Cómo ejecutar comandos Bash en segundo plano en Linux

No hay nada más molesto que ejecutar un comando en tu terminal y que se ejecute durante minutos, a veces horas, y no poder volver a utilizar tu terminal. Claro, puedes usar pestañas, pero es una solución complicada y no siempre es óptima porque es posible que quieras ver actualizaciones mientras trabajas. Aquí le mostramos algunas formas diferentes de ejecutar comandos bash en segundo plano en Linux.
Lea también: Cómo utilizar el comando lsof en Linux para enumerar archivos abiertos
Finalizar un comando con &
Si desea enviar un comando a segundo plano, use &
al final hay una manera fácil de hacerlo. De esta manera, puede emitir un comando en segundo plano y continuar usando su terminal mientras se ejecuta. Sin embargo, tiene un inconveniente. Usando &
no desconecta el comando de usted; simplemente lo empuja a un segundo plano. Esto significa que mientras intentas usar la terminal, cualquier cosa que el comando quiera enviar STDOUT
o STDERR
aún se imprimirá, lo que puede distraer la atención.

Cuando se cierra la sesión del terminal, el comando finaliza. También puede eliminar el comando emitiendo el jobs
comando, encontrar el número del comando que se está ejecutando y eliminarlo con el kill
dominio. Esa sintaxis es la siguiente:

Usando &
es bueno si necesitas posponer algo por un momento pero no esperes que continúe para siempre.
Lea también: Cómo utilizar el comando dd en Linux
& Después de una orden, entonces repúdela
Ejecutar un comando con solo &
lo empuja hacia atrás y lo mantiene funcionando mientras la ventana del terminal esté abierta. Sin embargo, si desea mantener este comando ejecutándose constantemente, incluso cuando finalice su sesión de terminal, puede usar el disown
dominio.
Para utilizar este método, comience agregando un &
.
Como se mencionó anteriormente, utilizando &
empuja este comando a un segundo plano pero no lo separa de su usuario. Puedes verificar esto escribiendo jobs
en la terminal. Mostrará el comando ejecutándose en segundo plano como vimos antes.
Sólo tipo disown
en el caparazón, y hará precisamente eso. (Y puedes verificar esto una vez más con el jobs
dominio.)

disown
comando ahí dentroAhora puedes cerrar tu terminal y continuar con tu día. Seguirá canalizando cosas hacia STDOUT
o STDERR
, pero una vez que salgas y vuelvas a abrir tu terminal, no verás nada allí. Puede encontrar el comando nuevamente con el top
o ps
comandos y matarlo con el kill
dominio.

Lea también: Cómo utilizar el comando Rm en Linux
& Después de un comando con /dev/null
Añadiendo &
después de un comando, se enviará un comando al fondo, pero como resultado, el comando en segundo plano continuará imprimiendo mensajes en la terminal mientras la usa. Si desea evitar esto, considere redirigir el comando a /dev/null
.

Esto no impide que el comando se cierre cuando se cierra el terminal. Sin embargo, como se mencionó anteriormente, es posible utilizar disown
para repudiar el comando en ejecución lejos del usuario. También puedes eliminarlo con cualquiera de los métodos mencionados anteriormente si no quieres que se ejecute más.
Lea también: La guía definitiva para los comandos Apt y Apt-Get
Nohup, con & y /dev/null
A diferencia de los comandos anteriores, usando nohup
le permite ejecutar un comando en segundo plano y mantenerlo ejecutándose. ¿Cómo? nohup
omite la señal HUP (señal de colgar), lo que permite ejecutar comandos en segundo plano incluso cuando el terminal está apagado. Combine este comando con la redirección a “/dev/null” (para evitar que nohup cree un archivo nohup.out) y todo pasará a segundo plano con un solo comando.
nohup COMMAND &>/dev/null &

Lea también: Cómo generar certificados SSL en Linux usando OpenSSL
La mayoría de los programas de terminal en Linux hoy en día tienen funciones integradas que les permiten ejecutarse en segundo plano con poco esfuerzo. Además de eso, los sistemas de inicio modernos (como systemd) pueden permitir a los usuarios iniciar programas como servicios durante el arranque o en cualquier momento.
Aún así, algunos programas en Linux carecen de la capacidad de ejecutarse como demonio o integrarse con sistemas de inicio modernos. Esto es un verdadero inconveniente, pero es comprensible, ya que no todos los desarrolladores tienen la habilidad o el tiempo para agregar nuevas funciones.
Por suerte, comandos como nohup
o disown
siguen siendo una realidad y pueden cerrar la brecha a la hora de pasar programas como este a un segundo plano. No son perfectos ni sofisticados, pero hacen el trabajo cuando es necesario.
Si disfrutó de este artículo de Linux, asegúrese de consultar algunos de nuestros otros contenidos de Linux, como cómo conectar su cuenta de Google a GNOME Shell, las mejores distribuciones de Linux para usuarios de Windows y los comandos LS que necesita conocer.
Lea también: Cómo utilizar cURL para la transferencia de datos de la línea de comandos y más
¡Suscríbete a nuestro boletín!
Nuestros últimos tutoriales entregados directamente a su bandeja de entrada