¿Cómo mostrar los procesos de Python en ejecución?

Publicado 8 de septiembre de 2024

Problema: Identificar procesos de Python en ejecución

Monitorear los procesos activos de Python es importante para gestionar los recursos del sistema y solucionar problemas de rendimiento. Puede ser difícil hacer un seguimiento de varios scripts de Python ejecutándose al mismo tiempo, especialmente cuando se trabaja con aplicaciones complejas o tareas automatizadas.

Uso del comando 'ps' para listar procesos de Python

Uso básico del comando 'ps'

El comando 'ps' muestra información sobre los procesos activos en un sistema tipo Unix. Proporciona una instantánea de los procesos actuales, incluyendo su ID de proceso (PID), terminal, uso de CPU y más.

Para listar los procesos de Python usando 'ps', combínalo con el comando 'grep':

ps aux | grep python

Este comando muestra los procesos que contienen "python" en su nombre o línea de comandos. Las opciones 'aux' proporcionan una vista detallada de todos los procesos para todos los usuarios.

Consejo: Excluir grep de los resultados

Para excluir el propio comando 'grep' de los resultados, usa el siguiente comando:

ps aux | grep '[p]ython'

Este truco utiliza corchetes alrededor de la primera letra, que coincide con 'python' pero no con '[p]ython', filtrando efectivamente el proceso grep en sí.

Opciones avanzadas de 'ps' para información detallada

Para obtener más detalles sobre los procesos de Python, usa estas opciones con el comando 'ps':

ps -eo pid,ppid,user,%cpu,%mem,start,time,command | grep python

Este comando proporciona:

  • PID: ID del proceso
  • PPID: ID del proceso padre
  • USER: Usuario que ejecuta el proceso
  • %CPU: Uso de CPU
  • %MEM: Uso de memoria
  • START: Hora de inicio del proceso
  • TIME: Tiempo de CPU
  • COMMAND: Línea de comando completa

Para interpretar esta salida:

  1. Revisa el PID para identificar procesos específicos.
  2. Observa las columnas %CPU y %MEM para el uso de recursos.
  3. Las columnas START y TIME muestran cuándo comenzó el proceso y su tiempo de ejecución.
  4. La columna COMMAND muestra el comando Python completo, lo que puede ayudar a identificar el script o la aplicación.

Usar estas opciones de 'ps' te da una visión clara de tus procesos Python y su uso de recursos.

Uso de 'pgrep' para la identificación de procesos Python

Introducción a 'pgrep'

'pgrep' es una herramienta que busca procesos basándose en sus nombres o atributos. Ayuda a encontrar los IDs de proceso (PIDs) de los programas en ejecución. 'pgrep' es simple y puede filtrar procesos fácilmente.

Para usar 'pgrep' con Python, utiliza esta sintaxis básica:

pgrep python

Este comando lista los PIDs de los procesos con "python" en su nombre. Para obtener más detalles, usa la opción '-l':

pgrep -l python

Esto muestra tanto el PID como el nombre del proceso.

Consejo: Uso de 'pgrep' con expresiones regulares

Puedes usar expresiones regulares con 'pgrep' para una coincidencia más precisa. Por ejemplo, para encontrar procesos Python con números de versión:

pgrep -f "python23?"

Esto coincide con procesos como "python3", "python3.8" o "python2.7".

Combinación de 'pgrep' con otros comandos

Puedes combinar 'pgrep' con otros comandos para realizar más operaciones. Aquí hay algunos ejemplos:

Para terminar todos los procesos Python:

pkill -f python

Para ver las líneas de comando completas de los procesos Python:

pgrep -af python

Para listar los procesos Python de un usuario específico:

pgrep -u nombreusuario python

Para contar los procesos Python en ejecución:

pgrep python | wc -l

Para obtener información detallada sobre los procesos Python:

pgrep python | xargs ps -fp