ADMIN-Tipp: Dtruss - Strace-Ersatz für OS X

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Unter Linux ist das Strace-Kommando bei der Fehlersuche oft das Tool der Wahl. Leider fehlt es beim BSD-basierten Mac OS X. Ein Dtrace-basiertes Skript bietet einen Ausweg. 

Startet ein Programm einfach nicht und gibt dabei auch keinen Hinweis auf den Grund, hilft oft das Linux-Tool "strace" weiter, das die verwendeten Systemaufrufe protokolliert. Bei dem BSD-basierten Mac OS X fehlt das kleine Programm aber. Eine Alternative ist das Skript "/usr/bin/dtruss", das bei der Namensgebung an das alte "truss" von Solaris erinnert, aber mit dem "d" auf das darunterliegende Dtrace-Framework verweist, das OS X ebenfalls von Solaris importiert hat. Der Aufruf gestaltet sich einfach:

dtruss ls

Damit verfolgt "dtruss" die Systemaufrufe beim Start des "ls"-Kommandos. Per Prozess-ID lässt sich ein Programm so tracen:

dtruss -p 2517

Schließlich kann "dtruss" mit der Aufrufoption sogar den Namen des aufgerufenen Prozesses heranziehen.

dtruss -n tar

Wie "strace" verwendet auch "dtruss", den Schalter "-f", um Kindprozesse ("fork") zu verfolgen. Weil es sich um ein Shell-Skript handelt, kann "dtruss" auch als Beispiel fürs Schreiben von eigenen Dtrace-Skripts unter OS X, (Open) Solaris und FreeBSD dienen. 

01.08.2012
BSD

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Systeme mit Vamigru verwalten

Auch wer nur kleine Flotten von Linux-Servern verwaltet, freut sich über Werkzeuge, die ihm diese Arbeit erleichtern. Vamigru tritt mit diesem Versprechen an. Wir verraten, was es leistet und wie Sie es in der eigenen Umgebung in Betrieb nehmen. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018

Microsite