Ejecutar comandos Bash en segundo plano de la manera correcta[Linux]

Todo el mundo ha estado allí: está buscando ejecutar un programa de terminal y mantenerlo en funcionamiento. El problema es que este programa es antiguo o no incluye una característica que le permite ejecutarse como un demonio en segundo plano. Afortunadamente, hay varias maneras de forzar a los programas a trabajar en segundo plano.

Bash puede hacer todo esto por sí solo, y no será necesario instalar programas adicionales. Este artículo repasará varias maneras en las que usted puede empujar los programas de la terminal en segundo plano y mantenerlos allí. Cada método listado es bueno para su propio caso de uso especial.

Finalizar un comando con &

Si quieres poner un comando en segundo plano, usar & al final es una forma fácil de hacerlo. Aunque viene con una trampa. Usar & no desconecta el comando de ti; sólo lo empuja en segundo plano para que puedas seguir usando un terminal.

Ejecutar comandos Bash en segundo plano de la manera correcta[Linux]


comando &

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i

Cuando se cierra la sesión de terminal, el comando termina. Usar &es bueno si necesitas empujar algo un poco, pero no esperes que continúe para siempre.

& Después de una orden, entonces repudiarla

Ejecutar un comando con just &lo empuja hacia atrás y lo mantiene en funcionamiento mientras la ventana de la terminal esté abierta. Sin embargo, si desea mantener este comando ejecutándose de forma constante, incluso con la sesión de terminal terminada, puede utilizar el comando disown.

Para usar este método, primero empieza añadiendo un &.

comando &

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i

Como se mencionó anteriormente, usar & empuja este comando al fondo pero no lo separa de su usuario. Puede verificar esto escribiendo los trabajos en el terminal. Mostrará el comando ejecutándose en segundo plano.

Ejecutar comandos Bash en segundo plano de la manera correcta[Linux]


Simplemente escriba disown en el shell, y eso es lo que hará (y podrá verificar esto una vez más con el comando jobs).

& After a Command with /dev/null

Agregar & después de un comando empujará un comando en segundo plano, pero como resultado, el comando en segundo plano continuará imprimiendo mensajes en la terminal a medida que lo estés usando. Si desea evitarlo, considere la posibilidad de redirigir el comando a /dev/null.

Ejecutar comandos Bash en segundo plano de la manera correcta[Linux]


comando &>/dev/null &

Esto no impide que el comando se cierre cuando el terminal se cierra. Sin embargo, como se mencionó anteriormente, es posible usar disown para desconocer el comando en ejecución lejos del usuario.

Nohup, con & y /dev/null

A diferencia de los comandos anteriores, el uso de nohup le permite ejecutar un comando en segundo plano y mantenerlo en ejecución. ¿Cómo? Nohup evita la señal HUP (colgar señal), lo que permite ejecutar comandos en segundo plano incluso cuando el terminal está apagado. Combina este comando con la redirección a /dev/null (para evitar que nohup cree un archivo nohup.out), y todo pasa a segundo plano con un comando.

nohup command &>/dev/null &

Ejecutar comandos Bash en segundo plano de la manera correcta[Linux]


Conclusión

La mayoría de los programas de terminal en Linux hoy en día tienen características incorporadas que les permiten ejecutarse en segundo plano con poco esfuerzo. Junto con eso, los sistemas init modernos (como systemd ) pueden permitir a los usuarios iniciar programas como servicios al arrancar o cuando sea.

Aún así, algunos programas en Linux carecen de la capacidad de ejecutarse como un demonio o integrarse con sistemas init modernos. Esto es un verdadero inconveniente, pero es comprensible, ya que no todos los desarrolladores tienen la habilidad o el tiempo para añadir nuevas características.

Afortunadamente, los comandos como nohupor disown siguen siendo una realidad y todavía pueden cerrar la brecha en el movimiento de programas como este a un segundo plano. No son perfectos ni elegantes, pero hacen el trabajo cuando es necesario.

¿Cómo se mueven los programas de terminal en ejecución en segundo plano? Cuéntanos más abajo!

Crédito de la imagen: Una terminal-cuatro pantallas

Fuente: este post proviene de Vida Tecno, donde puedes consultar el contenido original.
¿Vulnera este post tus derechos? Pincha aquí.
Creado:
¿Qué te ha parecido esta idea?

Esta idea proviene de:

Y estas son sus últimas ideas publicadas:

Etiquetas: Linux

Recomendamos

Relacionado

Linux

Dos potentes características del shell de la línea de comandos de Linux son la redirección y las tuberías que permiten que la salida (o incluso la entrada) de un programa se envíe a un archivo o a otro programa. Es posible que ya haya utilizado estas funciones sin ser consciente de ello. Siempre que se ha utilizado el signo «>» en un comando o «|» entonces se ha utilizado la ...

Linux

Una de las mayores ventajas de Ubuntu es la simplicidad del sistema de paquetes APT. Encuentra el programa de escritorio que desea, emite un comando y ya está listo para ejecutarse. Sin embargo, en el caso de las aplicaciones del lado del servidor, esta instalación de APT a veces sólo instala los archivos que necesitará para ejecutar el programa: tendrá que configurar y ejecutar el programa (a men ...

Linux

Anteriormente, hemos realizado un tutorial sobre configuración de varias cuentas de Dropbox en Windows 7 . No hay razón para que dejemos de lado a Mac y Linux también. Así que aquí está, el tutorial para ejecutar múltiples cuentas de Dropbox en Mac y Linux. Nota : El siguiente tutorial asume que ya ha instalado (y configurado) su cuenta principal de Dropbox en su ordenador. El tutorial de Linux es ...

Linux

Enviar un correo electrónico es algo que a menudo no tienes que pensar dos veces. Simplemente encienda su cliente de correo electrónico, ya sea basado en la web o en el escritorio, escriba un mensaje, introduzca la dirección de correo electrónico del destinatario y haga clic en «Enviar». ¿Qué sucede si es necesario que envíe correo electrónico desde la línea de comandos, por ejemplo, par ...

No importa cuán rápido sea su máquina Linux, siempre habrá algunas tareas que consumen mucho tiempo de CPU. Todo, desde la codificación de vídeo hasta la ejecución de modelos matemáticos, puede hacer que la CPU se ejecute al 100%. Esto está bien si la máquina no está haciendo nada más. Pero si es su escritorio principal o se usa como servidor, entonces ejecutar una tarea que maximice su CPU hará q ...