Strace-Befehle zum Lösen von Prozessproblemen unter Linux

Wenn wir unter unserer Verantwortung über Computer mit Linux-Betriebssystemen verfügen, besteht eine der nützlichsten und praktischsten Methoden zur korrekten Verwaltung der einzelnen Aspekte darin, die verschiedenen Dienstprogramme und Befehle zu kennen , die für deren Bereitstellung und Unterstützung vorhanden sind.

Bei dieser Gelegenheit wird TechnoWikis über ein Befehlszeilenprogramm namens strace sprechen und wir werden sehen, wie es für die Administration des Betriebssystems praktisch werden kann.

Was ist Strace?
strace ist ein nützliches Befehlszeilentool zum Diagnostizieren, Erteilen von Anweisungen und Ausführen von Debugging-Aufgaben. Die Administratoren des Systems finden in Kürze ein praktisches Werkzeug, um Probleme mit Programmen zu lösen, für die die Quelle nicht verfügbar ist, da sie nicht neu kompiliert werden müssen, um sie zu verfolgen.
Das strace-Tool erfasst und zeichnet alle von einem Prozess ausgeführten Systemaufrufe und die vom Prozess empfangenen Signale auf. Strace ist dafür verantwortlich, den Namen jedes Systemaufrufs zusammen mit seinen Argumenten in Klammern und seinem Standardfehler-Rückgabewert anzuzeigen. Optional kann es in eine Datei umgeleitet werden.

1. Installation von strace

Um strace zu installieren, müssen wir einen der folgenden Befehle ausführen:

 sudo apt install strace (Debian oder Ubuntu) yum install strace (RedHat oder CentOS) dnf install strace (Fedora) 

Falls ein Programm blockiert wird oder sich unerwartet verhält, können Sie auf Systemaufrufe zugreifen, um eine Vorstellung davon zu erhalten, was genau während seiner Ausführung passiert ist.

Die Aufrufe des Systems können in verschiedene Ereignisse eingeteilt werden: diejenigen, die sich auf die Verwaltung von Prozessen beziehen, diejenigen, die eine Datei als Argument nehmen, diejenigen, die Netzwerke, Speicherzuweisung, Signale, IPC und auch Systemaufrufe im Zusammenhang mit Dateideskriptoren betreffen.

2. So lösen Sie Prozessprobleme unter Linux mit strace-Befehlen

Als nächstes sehen wir verschiedene strace-Befehle, um die verschiedenen Prozessprobleme zu lösen, die unter Linux auftreten können.

Verfolgen Sie Anrufe mit strace zum System
Mit dieser Option können wir alle vom Befehl df ausgeführten Systemaufrufe verfolgen. Dazu führen wir Folgendes aus:

 strace df -h 

Befehle-strace-to-solve-problems-de-procesos-en-Linux-1.png

In diesem Ergebnis sehen wir verschiedene Arten von Systemaufrufen, die mit dem Befehl df ausgeführt werden. Eine davon ist beispielsweise:

 open ("/etc/ld.so.cache", O_RDONLY | O_CLOEXEC) = 3 

Wo:

  • Offen: Dies ist die Art des Systemaufrufs
  • Ist das Argument für den Systemaufruf: “/etc/ld.so.cache”, O_RDONLY | O_CLOEXEC
  • 3: Dies ist der Rückgabewert des Systemaufrufs
See also  Erstellen Sie eine USB-Bootdiskette Live Ubuntu 17.04 in Windows 10

Zeichnen Sie Linux-PID-Prozesse
Wenn auf dem System bereits ein Prozess ausgeführt wird, können Sie ihn wie folgt über Ihre PID verfolgen:

 sudo strace -c -p 465 

Dies füllt den Bildschirm mit der kontinuierlichen Ausgabe, die anzeigt, dass während des Vorgangs Anrufe an das System getätigt werden. Zum Abschluss drücken wir die Tastenkombination Strg + C.

Befehle-strace-to-solve-problems-de-procesos-en-Linux-2.png

Rufen Sie die Zusammenfassung eines Linux-Prozesses ab
Wenn Sie den Parameter -c verwenden, können Sie für jeden Systemaufruf einen Bericht über die Gesamtzeit, Aufrufe und Fehler erstellen. Dazu führen Sie die folgende Syntax aus:

 sudo strace -c -p (PID) 

Befehle-strace-to-solve-problems-de-procesos-en-Linux-3.png

Befehlszeiger während des Systemaufrufs drucken. Die Option -i zeigt den Befehlszeiger zum Zeitpunkt jedes vom Programm ausgeführten Systemaufrufs an.

 sudo strace -i df -h 

Befehle-strace-to-solve-problems-de-procesos-en-Linux-4.png

Zeigt die Uhrzeit für jede Trace-Ausgabezeile an
Mit strace ist es möglich, die Uhrzeit für jede Zeile in der Trace-Ausgabe mit dem Flag -t auszudrucken:

 sudo strace -t df -h 

Befehle-strace-to-solve-problems-of-process-in-Linux-5.png

Anzeige der verbrachten Druckzeit bei Systemaufrufen
Um den Zeitunterschied zwischen dem Start und dem Ende jedes von einem Programm ausgeführten Systemaufrufs anzuzeigen, müssen Sie die Option -T verwenden:

 sudo strace -T df -h 

Befehle-strace-to-solve-problems-de-procesos-en-Linux-6.png

Verfolgen Sie bestimmte Anrufe
Der Befehl trace = write wird als qualifizierter Ausdruck bezeichnet, wobei trace ein Qualifizierer ist (andere umfassen signal, abkürzung, verbose, raw, read oder write.) In diesem Fall schreiben Sie den Wert des Qualifizierers. Mit dem folgenden Befehl werden die Aufrufe an das System in Echtzeit angezeigt, um die df-Ausgabe in der Standardausgabe zu drucken:

 sudo strace -e trace = schreibe df -h 

Befehle-um-die-Probleme-von-Prozessen-in-Linux-7.png-zu-lösen

Einige zusätzliche Befehle, die wir verwenden können, sind:

 sudo strace -e trace = öffnen, schließen df -hsudo strace -e trace = öffnen, schließen, lesen, schreiben df -hsudo strace -e trace = alle df -h 

Verfolgen von Systemaufrufen basierend auf einer Bedingung
Dieser Befehl kann verwendet werden, um alle Systemaufrufe zu verfolgen, die das Prozessmanagement betreffen. Wir werden Folgendes ausführen:

 sudo strace -q -e trace = verarbeite df -h 

Befehle-strace-to-solve-problems-de-procesos-en-Linux-8.png

Um nun alle Aufrufe des Systems zu verfolgen, die einen Dateinamen als Argument verwenden, führen Sie den folgenden Befehl aus:

 sudo strace -q -e trace = Datei df -h 

Befehle-strace-to-solve-problems-de-procesos-en-Linux-9.png

Um alle Aufrufe an das System zu verfolgen, die eine Speicherzuweisung beinhalten, führen wir die folgende Zeile aus:

 sudo strace -q -e trace = speicher df -h 

Befehle-strace-to-solve-problems-de-procesos-en-Linux-10.png

Leiten Sie den Trace in eine Ausgabedatei um
Wenn wir die an einen Standardfehler gesendeten Verfolgungsnachrichten in eine Datei schreiben möchten, verwenden wir die Option -o. Dies bedeutet, dass nur die Ausgabe des Befehls wie folgt auf dem Bildschirm gedruckt wird:

 sudo strace -o df_debug.txt df -h 

Befehle-strace-to-solve-problems-de-procesos-en-Linux-11.png

Diese Datei kann durch Ausführen der folgenden Zeile angezeigt werden:

 cat df_debug.txt 

Bereitstellen der Debug-Ausgabe von Strace
Wenn wir die Debug-Informationen für das Strace-Tool anzeigen möchten, müssen wir das Flag -d verwenden:

 strace -d df -h 

Befehle-strace-to-solve-problems-de-procesos-en-Linux-12.png

Strace helfen
Um die Hilfe des Befehls strace bereitzustellen, führen wir die folgende Zeile aus:

 Mann strace 

Befehle-strace-to-solve-problems-of-process-in-Linux-13.png

So haben wir gesehen, wie Strace eine weitere Hilfe für Verwaltungsaufgaben in Linux-Distributionen wird.

See also  Möglichkeiten, um zu überprüfen, ob unser Linux 32 oder 64 Bit ist

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *