jobs
Muestra los trabajos que dejaste corriendo en segundo plano o pausados.
Es un comando de bash, no del sistema: te dice qué procesos dejaste en segundo plano con el &, cuáles pausas con Ctrl+Z y en qué estado está cada uno. Lo usas para saber qué sigue vivo en esa terminal, para recuperar un programa que pausaste y para terminar un trabajo con kill %1 sin buscar su PID. No hay que instalar nada, viene incluido en bash.
jobs [-lnprs] [ID]Despiece
6 ejemplosDejar un comando corriendo en segundo plano
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | sleep | Comando | El comando que quieres lanzar. |
| 2 | 300 | Valor | Los segundos que esperaría el comando. |
| 3 | & | Operador | Lo manda a segundo plano y te devuelve la terminal. |
El comando arranca, bash le pone un número entre corchetes ([1]) y tú recuperas el control de inmediato. Sin ese & tendrías la terminal ocupada cinco minutos sin poder escribir nada. El programa sigue vivo: corre jobs para verlo en la lista.
Ver los trabajos de esta terminal
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | jobs | Comando | El comando que lista los trabajos de la terminal. |
Sale una línea por trabajo, por ejemplo [1]+ Running sleep 300 &. El número entre corchetes es el número del trabajo, + marca el más reciente y - el anterior. Cada terminal tiene sus propios trabajos, así que en otra ventana no verás esta lista.
Ver los PID de los trabajos
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | jobs | Comando | El comando que lista los trabajos de la terminal. |
| 2 | -l | Opción | Agrega el PID de cada trabajo. |
Ahora cada línea incluye el número real del proceso: [1]+ 2662215 Running sleep 300 &. Ese PID es el que verías en ps o en top.
Quedarte solo con los números
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | jobs | Comando | El comando que lista los trabajos de la terminal. |
| 2 | -p | Opción | Imprime únicamente los PID, nada más. |
Sale un PID por línea y nada más. Es la forma cómoda de pasárselos a otro comando, por ejemplo kill $(jobs -p) para terminar todos los trabajos de golpe.
Ver solo los trabajos pausados
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | jobs | Comando | El comando que lista los trabajos de la terminal. |
| 2 | -s | Opción | Filtra solo los trabajos detenidos. |
Solo aparecen los que pausaste con Ctrl+Z. Sirve justo después de pausar algo, para confirmar que quedó detenido y luego traerlo de vuelta con fg %1. Con -r haces lo contrario y ves únicamente los que siguen corriendo.
Ver un trabajo en concreto
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | jobs | Comando | El comando que lista los trabajos de la terminal. |
| 2 | %1 | Argumento | El número del trabajo que quieres ver, tal como aparece entre corchetes. |
Muestra solo ese trabajo en lugar de toda la lista. El prefijo % es la forma de referirse a un trabajo: %1 es el primero, %+ el más reciente y %- el anterior. El mismo %1 lo aceptan fg y bg.
Opciones
Las que sí vas a usar| Opción | Qué hace |
|---|---|
| -l | Agrega el PID de cada trabajo a la lista, para que sepas el número real del proceso. |
| -p | Imprime solo los PID, sin nombres ni estados. Útil para pasárselos a otro comando. |
| -r | Muestra solo los trabajos que siguen corriendo, no los pausados. |
| -s | Muestra solo los trabajos detenidos, los que pausaste con Ctrl+Z. |
| -n | Muestra solo los trabajos que cambiaron de estado desde la última vez que consultaste la lista. |
Fallas comunes
| Falla | Remedio |
|---|---|
| Que jobs no muestre nada. | En esa terminal no hay ningún trabajo: nada se lanzó con & ni se pausó con Ctrl+Z. Los trabajos son por terminal, así que tampoco los ves desde otra ventana ni desde otro usuario. |
| Usar jobs, fg o bg dentro de un script. | En un script no hay control de tareas: bash responde fg: no job control y jobs no lista nada. Para dejar algo corriendo desde un script usa nohup, que sí funciona: nohup ./script.sh > salida.txt 2>&1 &. |
| Cerrar la terminal con un trabajo pausado y ver que bash pregunta. | bash te avisa que hay trabajos detenidos y espera tu respuesta. Escribe jobs para ver cuáles son, fg %1 para recuperar uno, o exit otra vez para salir y dejarlos morir. Un trabajo en primer plano, en cambio, muere en cuanto cierras la ventana. |
| Confundir el número [1] con el PID. | [1] es el número del trabajo dentro de esa terminal y el PID es el número real del proceso en el sistema. El PID lo ves con jobs -l o jobs -p. Con el número sí puedes usar kill %1 o fg %1, porque es una forma de hablar con bash, no con el sistema. |
Preguntas frecuentes
- ¿Qué significa el & al final de un comando?
- Es el operador que manda el comando a segundo plano: sigue corriendo pero te devuelve la terminal de inmediato. Bash le asigna un número de trabajo entre corchetes, que es el que usas luego con jobs, fg y kill %1.
- ¿Cómo veo el PID de un trabajo en segundo plano?
- Con jobs -l, que agrega el PID a cada línea, o con jobs -p, que imprime solo los números. El PID es el número real del proceso en el sistema, distinto del número de trabajo entre corchetes.
- ¿Cuál es la diferencia entre un trabajo detenido y uno en segundo plano?
- Los dos están fuera de primer plano, pero uno corre y el otro no. En segundo plano sigue ejecutándose; detenido quedó congelado por un Ctrl+Z, sin avanzar, hasta que lo reanudes con fg o lo mandes a segundo plano con bg.
- ¿Por qué jobs no muestra nada?
- Lo más común es que de verdad no tengas trabajos: nada se lanzó con & ni se pausó con Ctrl+Z. La otra causa es que estés en un script o en un contexto sin terminal, donde bash no activa el control de tareas y responde fg: no job control.
- ¿Cómo termino un trabajo que dejé en segundo plano?
- Con kill %1, usando el número del trabajo entre corchetes. También funciona kill $(jobs -p), que toma los PID de la lista y los termina todos. Si solo está pausado, primero llévalo a primer plano con fg %1 y luego Ctrl+C.