Descubra qué aplicaciones o procesos interactúan con un archivo en Mac OS X.
Usando el comando lsof, podemos averiguar exactamente qué proceso o aplicación está usando un archivo específico en ese momento. Esto es similar al comando opensnoop, pero en lugar de rastrear los cambios en un archivo a lo largo del tiempo, lsof puede brindarnos una instantánea de este momento, que puede ser útil para solucionar problemas.
lsof /path/to/filename
Por ejemplo, para ver qué interactúa con /var/log/system.log, lo señalamos a ese archivo:
$ lsof /var/log/system.log
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Console 84281 Will 8r REG 14,2 140239 71929128 /private/var/log/system.log
En este caso, la aplicación que usa system.log es «Console». Nuevamente, esto nos muestra una instantánea cuando se ejecutó el comando lsof, pero usando el comando opensnoop mencionado anteriormente, puede rastrear qué procesos usan ese archivo en tiempo real:
sudo opensnoop -f /var/log/system.log
Lo anterior daría como resultado ver algo como esto:$ sudo opensnoop -f /var/log/system.log
Password:
UID PID COMM FD PATH
501 84358 cat 3 /var/log/system.log
501 45411 console 3 /var/log/system.log
0 15 syslogd 16 /var/log/system.log
En este caso, busque en «COMM» el nombre del proceso o PID para el ID del proceso.
Recuerde que puede ir en la dirección opuesta con opensnoop y mostrar todos los archivos que usa una aplicación, dirigiendo el comando a una aplicación o proceso, en lugar de un archivo.