Dienstag, 2. Mai 2006

fstat, lsof und fs_usage unter Mac OS X

Gestern Abend geschah es: Slideshow for Erik, eine nette Freeware-App zur unkomplizierten Bildbetrachtung (Ordner mit Bildern auf das Icon im Dock ziehen, fertig) wollte nicht mehr. Nach dem Klick auf das Dock-Icon „bouncte“ dieses zwar zwei Mal, dann aber war schluss. Das schwarze Dreieck erschien nicht, um anzuzeigen, dass die Applikation geladen war.

Misslich! In der Console standen keine Fehlermeldungen, weshalb ich im Unklaren war, wo resp. wie der Fehler einzugrenzen war. Als erste Fährte wollte ich überprüfen, auf welche Dateien die Applikation beim Start Zugriff. Erst gerade vor kurzem hatte ich nämlich

$ sudo chmod -R root:admin /Applications/
$ sudo chown -R root:admin /Applications/

ausgeführt. Ob es (mit dem eigentlich nun korrekten) User/Group-Eigenschaften zu Berechtigungsproblemen kam?

Unter Windows käme zur Beantwortung einer solche Fragestellung Sysinternals exzellentes FileMon zum Einsatz. Doch unter Mac OS X?

Ich erinnerte mich, auf einer Technologie-Seite über Mac OS X vor langer, langer Zeit einmal etwas gelesen zu haben, wie man sich die Filezugriffe anzeigen konnte. Leider wusste ich anfänglich die URL nicht mehr – nach etwas Googlen stiess ich dann auf den gesuchten Kernelthread.com. Leider fand ich aber den Artikel über die Protokollierung der Dateizugriffe nicht mehr.

Stattdessen liess ich zum ersten Mal in meinem Leben die auf Kernelthread beschriebenen Tools fstat und lsof laufen. Woah! Für Spezialuntersuchungen muss ich mir die beiden Befehle merken. Soweit ich weiss, erlauben es diese beiden Tools aber nicht, im Hintergrund zu laufen. Werden sie gestartet, listen sie alle Datei-, Netzwerk- sowie sonstig abstruse Zugriffe auf. Aber eben nur gerade die zur Laufzeit aktiven.

Wieder etwas später dann die Entdeckung von fs_usage. Genau das suchte ich! Ein Non-Stopp-Monitoring, das erst mit Ctrl-C abgebrochen werden kann.

Schnell zimmerte ich mir im Terminal folgendes Konstrukt zusammen:

$ sudo fs_usage | grep Slide

und startete danach die Applikation aus dem Finder heraus.

Zeilenweise Zugriffe wurden ausgegeben. Unsicher, ob ein > dump.txt auch funktioniert hätte, kopierte ich den gesamten Inhalt des Terminal-Fensters in eine Textdatei und liess dann noch ein

$ cat dump.txt | grep -v CACHE_HIT

drüberlaufen. Dies verminderte den Output von 963 auf 702 Zeilen.

Und dann, tatsächlich, fiel es mir wie Schuppen von den Augen:

22:11:29  open            /Library/Preferences/Network/com.epson.scannermonitor.plist                       0.000084   SlideShow fo
22:11:29  open            /Library/Preferences/com.epson.scannermonitor.plist                               0.000027   SlideShow fo

Die Epson-Tools für meinen Scanner (!) hatte ich vor zwei Tagen nach /dev/null geschickt, da ich der Meinung war, mit dem deutlich benutzerfreundlichen Apple Image Capture bedient zu sein (dieses erkannte – o Wunder – meinen Scanner nach der Löschaktion übrigens auch nicht mehr).

Also meine portable Backup-HD daher, angeschlossen, die beiden EPSON.apps wieder nach /Applications/ kopiert, und die Slideshow startete tatsächlich wieder.

Wieso Slideshow die Scanner-Applikation braucht, ist mir bis heute ein Rätsel … Aber henusode!

fs_usage, das Tool, das man im Hinterkopf behalten sollte.

Liked this post? Follow this blog to get more. 

Tags:
Labels: Allgemein

Kommentar erfassen