Linux / Comando jobs: consultar los trabajos del shell actual

jobs muestra los trabajos en segundo plano y los trabajos detenidos que actualmente gestiona el shell Bash. Su alcance es diferente de ps, que consulta procesos del sistema según las opciones utilizadas.

El número de trabajo del shell se indica como %1, y el ID de proceso del sistema operativo es un PID numérico. Un trabajo puede estar compuesto por varios procesos, como los de una canalización. Los trabajos iniciados desde otro terminal o desde otro shell no aparecerán en la lista jobs del shell actual.

Sintaxis básica

jobs [opciones] [especificador_del_trabajo]

La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de help jobs en el sistema actual.

Ejemplos de uso

Iniciar un trabajo en segundo plano

El & al final inicia un comando como trabajo en segundo plano.

sleep 120 &

Ver los trabajos del shell actual

Se verifica el número de trabajo, el estado y el comando original.

jobs

Mostrar también el PID

Se coteja el número de trabajo con el PID real.

jobs -l

Leer el número de trabajo del shell actual

jobs muestra trabajos en segundo plano o suspendidos iniciados en el shell que se está utilizando, no todos los procesos del sistema.

sleep 60 &
jobs -l

Ejemplo de salida (PID y números de trabajo pueden variar):

[1]+ 12345 Running  sleep 60 &

[1] es el número de trabajo de este shell, 12345 es el PID del proceso. Si ejecuta jobs en otra terminal o en un shell nuevo, este trabajo no será visible. Si necesita mantener el trabajo incluso al cerrar el shell, revise nohup, tmux o el administrador de servicios.

Opciones y formatos principales

Opciones·Formato Descripción
-l Muestra el PID junto con el estado del trabajo.
-p Muestra solo el PID representativo del grupo de procesos del trabajo.
-r Muestra solo los trabajos en ejecución.
-s Muestra solo los trabajos suspendidos.

Precauciones al usar

jobs es un comando interno del shell y solo consulta la tabla de trabajos del shell actual. En scripts o shells no interactivos, el control de trabajos puede estar desactivado. El trabajo sleep del ejemplo desaparecerá de la lista con el tiempo, y si permanece, se puede finalizar con el número de trabajo del shell correspondiente como kill %1.

Preguntas frecuentes

¿Por qué jobs está vacío pero ps muestra procesos?

jobs solo muestra los trabajos que el shell actual ha iniciado y gestiona, mientras que ps consulta la lista de procesos del sistema.

Documentación oficial

Se puede verificar el comportamiento exacto de las opciones y las diferencias según la implementación en la documentación oficial sobre jobs.