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

Puppet-Training

Erfahren Sie in unserem eintägigen Training alles über das Servermanagement mit Puppet. Im Training geht es um den Aufbau einer Puppet-Umgebung, den Einsatz von Versionsverwaltung, Puppet-Module und Datenseparierung mit Hiera. Mehr Details zu unserem Puppet-Training finden Sie hier.
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Monitoring-Software

Welche Monitoring-Software setzen Sie ein?

  • Check_MK
  • Ganglia
  • Icinga
  • Monit
  • Munin
  • Monitorix
  • Nagios
  • NetXMS
  • Prometheus
  • Shinken
  • Zenoss
  • Zabbix
  • andere
  • keine

Artikel der Woche

Ressourcenkontrolle mit Cgroups

System-Ressourcen sind ein knappes Gut und sollten gerecht aufgeteilt werden. Der Linux-Kernel bietet zur Steuerung der Ressourcen sogenannte ControlGroups an. Prozesse können somit mehr oder weniger Ressourcen zugewiesen bekommen. Mit der Einführung des neuen Init-Systems systemd hat sich allerdings auch in diesem Bereich einiges verändert – zum Positiven. (mehr)

Google+

Ausgabe /2016