Basado en las ideas publicadas aquí, creé esta pequeña línea de código:
sudo vmmap notifyd | grep -A3 'Summary'
que muestra la sección Resumen (3 líneas) de la salida de vmmap. Lo he usado notifyd
en este ejemplo, pero puede reemplazarlo con cualquier PID que conozca.
Esta línea intentará enumerar todas las líneas de resumen de todos los procesos en ejecución. Obviamente, algunos fallarán porque su identificación de proceso ya no está (proceso finalizado), pero en general descubrí que esta es una excelente manera de desplazarse por una lista de información de memoria y detectar el intercambiador superior.
ps -o pid= -xa | awk '{print $1}' | xargs -n 1 sudo vmmap | grep -A3 'Summary'
Editado: algún usuario anónimo vio que esta última línea de comando necesitaba una mejora porque obviamente la variante original ya no funcionaba. Así que muchas gracias, sea quien sea, y lamento que su edición haya sido rechazada. (El primer comando leyó anteriormente 'ps xa' y dio como resultado que vmmap fallara debido al título de ps que se le arrojó)
Mejora adicional: si desea saber el nombre del programa de inmediato, use este pequeño cambio
ps -o pid= -xa | awk '{print $1}' | xargs -n 1 sudo vmmap | egrep 'swapped_out|Path'
Una pequeña enmienda en el otro extremo de este comando le permite filtrar ciertos nombres de programas o componentes de la ruta de la línea de comandos. Aquí estamos viendo todos los procesos de 'Library / PrivateFrameworks' solo, por ejemplo.
ps -o pid,command= -xa | grep 'Library/PrivateFrameworks' | awk '{print $1}' | xargs -n 1 sudo vmmap |