Volver al blog

Cómo monitorizar procesos en macOS: guía completa para desarrolladores

Aprende a monitorizar, inspeccionar y gestionar procesos de macOS más allá de Activity Monitor: desde árboles de procesos y PID hasta variables de entorno y firmas de código.

Todo desarrollador de macOS acaba topándose con la misma frustración: Activity Monitor te muestra que un proceso consume CPU, pero apenas te da datos accionables para averiguar por qué. Esta guía cubre todo lo que necesitas saber sobre la monitorización de procesos en macOS, desde lo básico hasta las técnicas avanzadas que realmente te ayudan a depurar.

Respuesta rápida

Para monitorizar procesos en macOS de forma eficaz, usa Activity Monitor para comprobaciones rápidas de recursos y ProcXray o herramientas de terminal para el análisis de causa raíz. La gran mejora es la visibilidad de los árboles de procesos, el contexto de lanzamiento, las variables de entorno y los subprocesos de vida corta.

¿Qué es un proceso?

En macOS, cada programa en ejecución es un proceso con un identificador de proceso (PID) único. Cuando abres tu navegador, macOS genera un proceso padre, que a su vez puede generar decenas de procesos hijos: procesos de renderizado, procesos de GPU, procesos de extensiones y más. Comprender esta jerarquía es el primer paso hacia una monitorización eficaz.

Lo básico: Activity Monitor

El Activity Monitor integrado de Apple (/Applications/Utilities/Activity Monitor.app) te ofrece:

Es suficiente para un uso ocasional. Para los desarrolladores, se queda corto casi de inmediato.

Lo que Activity Monitor no puede hacer

Esto es lo que encontrarás rápidamente como desarrollador:

Sin vista de árbol de procesos. Activity Monitor muestra una lista plana. Cuando un script de shell genera cinco procesos auxiliares que generan más hijos, ves un caos. No puedes saber qué generó qué.

Sin variables de entorno. Cuando depuras por qué NODE_ENV o DYLD_LIBRARY_PATH es incorrecto dentro de un proceso, no tienes forma de inspeccionar el entorno real con el que se lanzó el proceso.

Sin búsqueda regex en tiempo real. Filtrar 300 procesos por nombre exige teclear con cuidado y se reinicia con frecuencia.

Los procesos de vida corta son invisibles. ¿Un sistema de compilación que crea y destruye procesos de compilador en milisegundos? Activity Monitor nunca los captura.

Usar la línea de comandos

ps, top, lsof y dtrace cubren algunas carencias:

# Mostrar el árbol de procesos
ps auxf

# Listar todos los archivos abiertos de un proceso
lsof -p <PID>

# Mostrar las variables de entorno de un proceso
ps eww -p <PID>

Son potentes, pero incómodas. ps eww vuelca el entorno como un muro de texto ilegible. La salida de lsof puede tener miles de líneas.

Un enfoque mejor: ProcXray

ProcXray es una app nativa de macOS creada específicamente para desarrolladores que necesitan más de lo que ofrece Activity Monitor. Pone a la vista los datos que de verdad necesitas:

Vista de árbol de procesos

Alterna entre una lista plana y un árbol de procesos en vivo. Visualiza las relaciones padre-hijo al instante: algo crucial al depurar scripts de shell, herramientas de compilación o apps multiproceso como Chrome o Electron.

Inspector de variables de entorno

Haz clic en cualquier proceso y cambia a la pestaña Environment. Cada variable de entorno con la que se lanzó el proceso aparece listada, es buscable y se puede copiar como JSON. Se acabó el análisis de ps eww.

Búsqueda regex en tiempo real

Escribe un patrón de regex y la lista se filtra al instante por nombres de proceso, PID, argumentos de línea de comandos y rutas. Encuentra node.*server o python3.*manage en milisegundos.

Captura de procesos de vida corta

ProcXray resalta en verde los procesos recién generados y conserva en rojo los procesos finalizados durante un intervalo configurable. Por fin verás esos procesos transitorios de compilador y enlazador que desaparecen antes de que Activity Monitor se actualice.

Verificación de firma de código

Para auditorías de seguridad, ProcXray muestra si cada proceso está firmado, por quién y qué permisos (entitlements) tiene, todo ello sin tocar la terminal.

Cuándo usar cada herramienta

EscenarioHerramienta
Comprobación rápida de CPU/memoriaActivity Monitor
Depurar un proceso descontroladoProcXray
Inspeccionar el entorno de un procesoProcXray
Averiguar qué generó un procesoProcXray
Auditoría de seguridad de procesos sin firmarProcXray
Monitorización con scripts/automatizadaps, top, dtrace

Cómo empezar

Descarga ProcXray: es gratis, está firmado con código y notarizado por Apple. Requiere macOS 14 (Sonoma) o posterior en Apple Silicon o Intel.

Una vez instalado, sustituye tu hábito diario de Activity Monitor por algo que realmente te ayuda a avanzar más rápido.

Preguntas frecuentes

¿Cuál es la forma más rápida de averiguar qué generó un proceso sospechoso?

Usa un árbol de procesos en vivo. Las relaciones padre-hijo revelan de inmediato qué script de shell, paso de compilación o componente de la app lanzó el proceso.

¿Cómo inspecciono el entorno de un proceso en macOS?

Puedes usar ps eww -p <PID> desde la terminal, pero la inspección del entorno basada en interfaz suele ser más rápida para conjuntos grandes de variables y para análisis de incidentes repetidos.

¿Deberían los desarrolladores dejar de usar Activity Monitor por completo?

No. Conserva Activity Monitor para comprobaciones ligeras y pasa a herramientas más profundas cuando necesites linaje, argumentos de lanzamiento, datos de entorno o contexto de seguridad.

Fuentes y referencias