Tabla de contenido
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.