web-dev-qa-db-fra.com

Voir quel processus utilise un fichier sous Mac OS X

J'aimerais pouvoir suivre un fichier et voir quel processus touche ce fichier. Est-ce possible? Je sais que je peux voir la liste des processus ouverts dans le moniteur d'activité, mais je pense que cela se produit trop rapidement pour que je puisse la voir. La raison en est que j'utilise un framework et je pense que la version système du framework est utilisée à la place de la version de débogage et j'aimerais voir quel processus le concerne.

87
JPC

lsof listera les fichiers ouverts, mais cela peut être un peu gênant pour des manipulations momentanées (par exemple, si le fichier n'est pas ouvert lorsque lsof est exécuté, il ne s'affiche pas).

Je pense que votre meilleur pari serait fernLightning's fseventer.app . C'est un "nagware", et vous permet de regarder (graphiquement) l'API de fsevents en temps réel.

86
Shaun

C'est simple: Sudo fs_usage | grep [path_to_file]

82
spaceboy.cz

Mais j'ai passé 2 minutes à chercher sur Google et à trouver votre réponse ici .

$ lsof | grep [peu importe]

Où [que ce soit] est remplacé par le nom de fichier que vous recherchez. Avec cela, vous pouvez voir quel programme tient désespérément sur votre fichier sur le point d'être détruit. Une fois que vous quittez ce programme, votre corbeille sera vide.

38
Michael Dautermann

Une autre option est Paresse . C’est une interface graphique gratuite et à source ouverte pour LSOF que d’autres ont mentionnée.

13
cavalcade

Le moyen le plus rapide est:

$ lsof [path_to_file]

Cette solution ne nécessite pas le mot de passe root et vous redonne le résultat clair suivant:

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
Finder     497  JR7   21r   REG    1,2   246223 33241712 image.jpg
QuickLook 1007  JR7  txt    REG    1,2   246223 33241712 image.jpg
13
bontoJR