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.
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.
strace df -h
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
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.
sudo strace -c -p (PID)
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
sudo strace -t df -h
sudo strace -T df -h
sudo strace -e trace = schreibe df -h
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
sudo strace -q -e trace = verarbeite df -h
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
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
sudo strace -o df_debug.txt df -h
Diese Datei kann durch Ausführen der folgenden Zeile angezeigt werden:
cat df_debug.txt
strace -d df -h
Mann strace
So haben wir gesehen, wie Strace eine weitere Hilfe für Verwaltungsaufgaben in Linux-Distributionen wird.