Cuando utilizamos la línea de comandos a veces necesitamos lanzar procesos que son largos de ejecutar y costosos de tiempo me refiero por ejemplo a backups, dumps, búsquedas en todo el servidor, escaneos de un antivirus, etc y se da la circunstancia que queremos seguir trabajando en esa línea de comandos mientras se ejecuta esa tarea, para ello podemos enviar el trabajo “costoso” a “segundo plano” de un modo muy sencillo.
Para mandar una tarea a segundo plano desde la línea de comandos tan solo tenemos que añadir un & (ampersand) al final del comando por ejemplo:

[email protected]:~$ grep –lr “cadenadetexto” / &

El sistema nos mostrará algo como esto:

[3] 8928

Donde vemos el número de tareas ejecutándose en segundo plano [3] y el ID asignado.

Para ver los procesos en segundo plano y su estado podemos utilizar el comando “jobs” que nos mostrará un listado de los ID, las tareas actuales y el estado en que se encuentran “Running” o “Stopped”, vemos un ejemplo de la ejecución de “jobs” en la siguiente imagen (a su derecha nos aparecerian los comandos y sus ID)

salida Jobs
Aviso: si nos desconectamos de las sesión de ssh se cancelarán todos los trabajos que estábamos haciendo, para evitarlo usaremos los comandos “nohup” y “screen” que explicaremos en otro post.