Prozessmonitor-Äquivalent für Linux?

26

Gibt es ein Unix / Linux-Äquivalent zu Process Monitor , egal ob GUI oder CUI?

Wenn es einen Unterschied macht, schaue ich auf Ubuntu, aber wenn es ein Äquivalent für andere Systeme gibt (Mac, andere Linux-Varianten wie Fedora usw.), dann wäre es auch nützlich, eines davon zu kennen.

Bearbeiten:

Process Monitor überwacht Systemaufrufe (wie das Erstellen oder Schreiben von Dateien), während Process Explorer den Prozessstatus überwacht (ähnlich wie System Monitor). Ich bitte um das erstere, nicht um das letztere. :-)

Mehrdad
quelle

Antworten:

12

Der Konsolen-Standby-Modus ist dies top, aber es gibt Alternativen wie meinen Favoriten htop, die Ihnen ein wenig mehr Anzeigeflexibilität bieten und Ihnen ein paar weitere Vorgänge in den Prozessen ermöglichen.

Eine weniger interaktive Ansicht, die sich besser für Skripte eignet, wäre das psProgramm und alle seine Verwandten.

Bearbeiten: Aufgrund Ihrer geklärten Frage stellen Sie möglicherweise fest, dass straceSystemaufrufe, die von einem bestimmten Prozess ausgeführt werden, einschließlich aller Lese- / Schreibvorgänge und OS-Funktionsaufrufe überwacht werden. Sie können es in der Befehlszeile vor dem Programm aktivieren, das Sie verfolgen oder an einen laufenden Prozess anhängen möchten, indem Sie sauf einen in ausgewählten Prozess klicken htop.

Caleb
quelle
4
Ich glaube, topist das Äquivalent von Process Explorer , nicht Process Monitor , oder?
Mehrdad
Wie wäre es, wenn Sie es ausführen und die Manpage erkunden. Ich habe die Funktionsliste gelesen, die Sie mit dem Prozessmonitor verknüpft haben, und es hörte sich so an, als htopwären alle Details außer der Überwachung der Startsequenz abgedeckt. Allenfalls könnte es sein , aktiviert screen/ tmuxirgendwann teilweise durch ein Linux - Boot cylce.
Caleb
In Anbetracht Ihrer anderen Kommentare suchen Sie möglicherweise auch nach Informationen strace, die Sie aktivieren können, htopindem Sie sauf einen Prozess klicken oder manuell über die Befehlszeile, wenn Sie etwas ausführen oder eine Prozess-ID verwenden.
Caleb
12

Das A und O aller Prozessmonitore ist top, und viele Systemüberwachungstools werden aufgerufen top. Beispielsweise müssen Sie die iotopDatenträger-E / A atopauf eine Reihe von Systemressourcen und den powertopStromverbrauch überwachen .

Wenn Sie detailliertere Informationen wünschen, werden diese standardmäßig nicht erfasst. Um zu sehen, was ein bestimmter Prozess tut, rufen straceSie ihn auf. Zum Beispiel, wenn Sie nur an Dateisystemzugriffen interessiert sind:

strace -s9999 -efile command_name    # trace a program during its whole execution
strace -s9999 -efile -p1234          # trace a running program with the given PID

straceist Linux-spezifisch, aber andere Systeme haben ein ähnliches Tool: trussunter Solaris ktraceoder dtraceunter * BSD usw.

Verwenden Sie die Funktion inotify , um zu sehen, was mit einer bestimmten Datei oder in einem bestimmten Verzeichnis oder einer bestimmten Verzeichnisstruktur geschieht .

inotifywait -m .

Auch hier ist die Funktion Linux-spezifisch, aber die meisten anderen Unices haben ein ähnliches System, z. B. kqueue unter * BSD und FAM (ursprünglich von SGI, jetzt aber als API auf vielen Systemen verfügbar).

Um alle Systemaufrufe unter Linux zu überwachen , können Sie das Audit-Subsystem verwenden . Es ist relativ neu und es gibt nicht viel Literatur zu diesem Thema; Suchen auditctloder lesen Sie die auditctlManpage . Auf dieser Website finden Sie einige Beispiele: Nachverfolgen von Dateizugriffen , Nachverfolgen der Prozessausführung .

Gilles 'SO - hör auf böse zu sein'
quelle
Verweisen Sie wirklich auf das Äquivalent von Process Monitor und nicht auf Process Explorer ?
Mehrdad
@Mehrdad: Ich verstehe, ich habe den Namen und den Speicher eines Tools, das ich unter Windows verwendet habe (und zwar Process Explorer) und nicht die tatsächliche Beschreibung. Es ist immer gefährlich, nach dem Äquivalent eines bestimmten Programms zu fragen, besser nach einem Programm mit bestimmten Funktionen.
Gilles 'SO- hör auf böse zu sein'
Vielen Dank. iotop -o -b -Pzeigt mir, welche Prozesse Datenträger-E / A-Vorgänge
ausführen
8

Vielleicht möchten Sie einen Blick auf lsofund werfen strace. Sysinternals Prozessmonitor besteht eigentlich aus Filemon und Regmon, kombiniert mit einigen zusätzlichen Verbesserungen. Der topBefehl ähnelt eher dem Prozess-Explorer.

Omega
quelle
4

Sie suchen wahrscheinlich nach sysdig

Beispielsweise:

sysdig -A -c echo_fds
Singulett
quelle
2

Ich habe diesen Prozessmonitor nicht verwendet, aber soweit ich das beurteilen kann, ist er derselbe wie gnome-system-monitorauf einem Gnome-System. Wenn Sie KDE verwenden, haben sie wahrscheinlich etwas Ähnliches.

Keith
quelle
Nein, sie sind anders. Process Monitor nimmt Systemaufrufe entgegen und zeigt keine Prozessinformationen an. (Auf was Sie sich beziehen, wird jedoch von Process Explorer ausgeführt.)
Mehrdad,
Na ja, ich benutze normalerweise das CLI-Tool vmstat für solche Dinge. Aber das ist systemweit, nicht pro Prozess.
Keith
1

Mit dtrace4linux können Sie einige interessante Details des Kernels nachverfolgen. Obwohl es mächtiger zu sein scheint als sysdig, ist es leider nicht so gut benommen.

Rui F Ribeiro
quelle