Découvrez les applications ou les processus qui interagissent avec un fichier sous Mac OS X
La commande lsof nous permet de savoir exactement quel processus ou quelle application utilise un fichier donné à ce moment précis. Cette commande est similaire à la commande opensnoop, mais plutôt que d’observer les changements apportés à 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 /chemin/vers/nom de fichier
Par exemple, pour voir ce qui interagit avec le fichier /var/log/system.log, nous le faisons pointer vers ce fichier :
$ lsof /var/log/system.log
COMMAND PID USER FD TYPE DE DISPOSITIF TAILLE / NOM DE NODE DE L’UTILISATEUR DE COMMANDE
Console 84281 Will 8r REG 14,2 140239 71929128 /private/var/log/system.log
Dans ce cas, l’application utilisant system.log est « Console ». Là encore, 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 en temps réel les processus qui utilisent ce fichier :
sudo opensnoop -f /var/log/system.log
Ce qui précède aboutirait à quelque chose comme ceci:
$ sudo opensnoop -f /var/log/system.log
Mot de passe:
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 cherchez sous « COMM » les noms des processus, ou PID pour l’identifiant du processus.
N’oubliez pas que vous pouvez aussi aller dans le sens inverse avec opensnoop, et montrer tous les fichiers qu’une application utilise en pointant la commande sur une application ou un processus, plutôt que sur un fichier.