Tres Métodos Efectivos para Ejecutar Comandos en Segundo Plano en Linux

En el mundo de Linux, la capacidad de ejecutar comandos o scripts en segundo plano es una funcionalidad crucial, especialmente cuando se trata de tareas que requieren un largo tiempo de procesamiento o deben permanecer activas durante periodos prolongados. A continuación, exploramos tres técnicas fundamentales que te permitirán manejar tareas en segundo plano de manera eficiente: utilizando los caracteres ‘&’, el comando ‘nohup’, y la herramienta ‘screen’.

1. Uso del Carácter ‘&’ y los Comandos ‘bg’ y ‘fg’

Al finalizar un comando con el carácter ‘&’, este se ejecutará en el fondo, permitiéndote continuar utilizando la terminal para otras tareas:

$ ./ejemplo-script.sh &

Si inicialmente ejecutas un comando sin el ‘&’, pero luego decides que debería correr en segundo plano, puedes suspenderlo con CTRL+Z y luego usar el comando bg para moverlo al fondo:

$ ./ejemplo-script.sh ^Z $ bg

Para retomar cualquier proceso suspendido y traerlo de vuelta al primer plano, utiliza fg:

$ fg

2. Persistencia con ‘nohup’

El comando nohup es ideal para asegurar que un proceso siga corriendo después de cerrar la terminal. Este comando ignora la señal SIGHUP, lo que previene que el proceso se termine al cerrar la terminal:

$ nohup ./ejemplo-script.sh &

Es una práctica común redirigir la salida estándar y los errores a archivos específicos para evitar la terminación del proceso debido al cierre de la sesión:

$ nohup ./ejemplo-script.sh > salida.out 2> errores.err < /dev/null &

3. Interactividad con ‘screen’

Screen es una herramienta poderosa que permite gestionar múltiples sesiones de terminal en un solo terminal físico. Iniciar un script con screen te permite desconectarte y regresar más tarde para inspeccionar el progreso:

$ screen ./ejemplo-script.sh

Desconéctate de la sesión sin terminar el script usando CTRL+A seguido de d. Para reanudar la sesión:

$ screen -r

Conclusión

Seleccionar entre ‘&’, ‘nohup’, y ‘screen’ depende de tus necesidades específicas: ‘&’ es suficiente para tareas rápidas en segundo plano, ‘nohup’ para procesos largos que no requieren intervención, y ‘screen’ para cuando necesitas volver a conectar con el proceso. Para profundizar en estos comandos, considera explorar más las páginas del manual de Linux.