Découvrez quelles applications ou processus interagissent avec un fichier sous Mac OS X

En utilisant la commande lsof, nous pouvons savoir exactement quel processus ou application utilise un fichier spécifié à ce moment donné. Ceci est similaire à la commande opensnoop, mais plutôt que d'observer les modifications apportées à un fichier au fil du temps, lsof peut nous donner un instantané de ce moment précis, ce qui peut être utile à des fins de dépannage.

lsof /path/to/filename

Pour un exemple, pour voir ce qui interagit avec /var/log/system.log, pointez-le sur ce fichier:

$ 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

Dans ce cas, l'application utilisant system.log est "Console". Encore une fois, cela nous montre un instantané au moment où la commande lsof a été exécutée, mais en utilisant la commande opensnoop mentionnée précédemment, vous pouvez suivre les processus qui utilisent ce fichier en temps réel:

sudo opensnoop -f /var/log/system.log

Ce qui précède entraînerait quelque chose comme ceci:
$ 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

Dans ce cas, vous recherchez sous "COMM" pour les noms de processus ou PID pour l'ID de processus.

Rappelez-vous que vous pouvez également utiliser opensnoop de la même manière et afficher tous les fichiers utilisés par une application en pointant la commande sur une application ou un processus plutôt que sur un fichier.