Linux / Comando ps: consultar procesos, PID y estado

ps muestra la lista de procesos en el momento de la ejecución. Se utiliza para investigar si un servicio o tarea específica se está ejecutando realmente, verificando el PID, el usuario, el estado y el comando.

ps genera una instantánea en un momento dado y termina. Para ver cómo cambian los números en tiempo real, use top o htop. La notación de las opciones combina formatos POSIX y BSD, por lo que el significado puede variar según la presencia o ausencia de un guion.

Sintaxis básica

ps [opciones]

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

Ejemplos de uso

Procesos del terminal actual

Sin opciones, procps-ng suele seleccionar procesos del mismo usuario efectivo y del mismo terminal que quien ejecuta ps.

ps

Procesos de todo el sistema

Examina ampliamente el usuario, PID, PID del proceso padre y el comando.

ps -ef

Especificación de campos para un PID específico

Al especificar solo las columnas necesarias, es más fácil leer los resultados del script y de la verificación.

ps -p 1234 -o pid,ppid,user,stat,cmd

Cómo leer la columna de procesos

ps muestra una instantánea del proceso en el momento de la ejecución. Si se especifica una columna, se pueden distinguir claramente el PID (ID del proceso), PPID (PID del proceso padre), estado y nombre del comando.

ps -o pid,ppid,stat,comm -p $$

Ejemplo de salida (los números cambian cada vez que se ejecuta):

    PID    PPID STAT COMMAND
   4321    4100 Ss   bash

$$ es el PID del shell actual. La primera letra de STAT indica estados como ejecución o espera, y las letras posteriores representan estados adicionales. Los procesos pueden terminarse justo después de la consulta, así que antes de ejecutar el comando de cierre, verifique nuevamente el PID y el comando.

Opciones y formatos principales

Opciones·Formato Descripción
-e Selecciona todos los procesos.
-f Muestra la salida en formato detallado.
-p PID Selecciona solo los ID de proceso especificados.
-o lista_de_columnas Especifica los campos y el orden de la salida.
aux Vea la información completa de procesos y recursos de los usuarios al estilo BSD.

Precauciones al usar

Una búsqueda como ps | grep nombre puede incluir el propio proceso grep. Para localizar PID por nombre, pgrep suele ser más conveniente. Los procesos pueden terminar y los PID reutilizarse: vuelva a comprobar el PID y la identidad del comando antes de enviar una señal.

Preguntas frecuentes

¿Cuál es la diferencia entre ps y top?

ps imprime la lista en el momento de la ejecución y termina. top actualiza la pantalla periódicamente para observar los cambios.

Documentación oficial

El comportamiento exacto de las opciones y las diferencias según la implementación se pueden consultar en la documentación oficial de ps.