Comandos LinuxExplicados en español
/
Ficha46 / 104
Categoría
Procesos
Ejemplos
6
Ver también
fg · nohup · ps · kill

jobs

jobs (trabajos)

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.

Sintaxisjobs [-lnprs] [ID]
§ 1

Despiece

6 ejemplos
Dejar un comando corriendo en segundo plano

Dejar un comando corriendo en segundo plano

3 piezas
Lámina01 / 06
Comandosleep 300 &
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1sleepComandoEl comando que quieres lanzar.
2300ValorLos segundos que esperaría el comando.
3&OperadorLo manda a segundo plano y te devuelve la terminal.
Resultado

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

1 pieza
Lámina02 / 06
Comandojobs
Piezas1
Escala1:1
N.ºPiezaTipoQué hace
1jobsComandoEl comando que lista los trabajos de la terminal.
Resultado

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

2 piezas
Lámina03 / 06
Comandojobs -l
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1jobsComandoEl comando que lista los trabajos de la terminal.
2-lOpciónAgrega el PID de cada trabajo.
Resultado

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

2 piezas
Lámina04 / 06
Comandojobs -p
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1jobsComandoEl comando que lista los trabajos de la terminal.
2-pOpciónImprime únicamente los PID, nada más.
Resultado

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

2 piezas
Lámina05 / 06
Comandojobs -s
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1jobsComandoEl comando que lista los trabajos de la terminal.
2-sOpciónFiltra solo los trabajos detenidos.
Resultado

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

2 piezas
Lámina06 / 06
Comandojobs %1
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1jobsComandoEl comando que lista los trabajos de la terminal.
2%1ArgumentoEl número del trabajo que quieres ver, tal como aparece entre corchetes.
Resultado

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.

§ 2

Opciones

Las que sí vas a usar
OpciónQué hace
-lAgrega el PID de cada trabajo a la lista, para que sepas el número real del proceso.
-pImprime solo los PID, sin nombres ni estados. Útil para pasárselos a otro comando.
-rMuestra solo los trabajos que siguen corriendo, no los pausados.
-sMuestra solo los trabajos detenidos, los que pausaste con Ctrl+Z.
-nMuestra solo los trabajos que cambiaron de estado desde la última vez que consultaste la lista.
§ 3

Fallas comunes

FallaRemedio
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.
§ 4

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.
§ 5

Ver también