GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Überwachen Sie Ihr Linux-System in Ihrem Terminal mit procps-ng

Ein Prozess ist in der POSIX-Terminologie ein fortlaufendes Ereignis, das vom Kernel eines Betriebssystems verwaltet wird. Ein Prozess wird gestartet, wenn Sie eine Anwendung starten, obwohl viele andere Prozesse im Hintergrund Ihres Computers laufen, darunter Programme, die Ihre Systemzeit genau halten, neue Dateisysteme überwachen, Dateien indizieren und so weiter.

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Die meisten Betriebssysteme verfügen über eine Art Systemaktivitätsmonitor, mit dem Sie jederzeit erfahren können, welche Prozesse gerade ausgeführt werden. Linux hat einige zur Auswahl, darunter GNOME System Monitor und KSysGuard. Beides sind nützliche Anwendungen auf dem Desktop, aber Linux bietet auch die Möglichkeit, Ihr System in Ihrem Terminal zu überwachen. Unabhängig davon, wofür Sie sich entscheiden, ist es eine häufige Aufgabe für diejenigen, die eine aktive Rolle bei der Verwaltung ihres Computers übernehmen, einen bestimmten Prozess zu untersuchen.

In diesem Artikel zeige ich, wie man die Prozess-ID (PID) eines Programms findet. Die gebräuchlichsten Tools dafür werden vom Paket procps-ng bereitgestellt, einschließlich ps und pstree , pidof und pgrep Befehle.

Finden Sie die PID eines laufenden Programms

Manchmal möchten Sie die Prozess-ID (PID) einer bestimmten Anwendung abrufen, von der Sie wissen, dass sie ausgeführt wird. Die pidof und pgrep Befehle finden Prozesse anhand des Befehlsnamens.

Die pidof command gibt die PIDs eines Befehls zurück und sucht nach dem genauen Befehl nach Namen:

$ pidof bash 
1776 5736

Das pgrep Befehl erlaubt reguläre Ausdrücke (regex):

$ pgrep .sh
1605
1679
1688
1776
2333
5736
$ pgrep bash
5736

Eine PID nach Datei finden

Sie können die PID des Prozesses mithilfe einer bestimmten Datei mit dem fuser finden Befehl.

$ fuser --user ~/example.txt                    
/home/tux/example.txt:  3234(tux)

Prozessnamen nach PID abrufen

Wenn Sie die PID Nummer haben eines Prozesses, aber nicht des Befehls, der ihn hervorgebracht hat, können Sie mit ps eine "umgekehrte Suche" durchführen :

$ ps 3234
 PID TTY      STAT   TIME COMMAND
5736 pts/1    Ss     0:00 emacs

Alle Prozesse auflisten

Das ps Befehl listet Prozesse auf. Mit dem -e können Sie jeden Prozess auf Ihrem System auflisten Möglichkeit:

$ ps -e | less
PID TTY          TIME CMD
  1 ?        00:00:03 systemd
  2 ?        00:00:00 kthreadd
  3 ?        00:00:00 rcu_gp
  4 ?        00:00:00 rcu_par_gp
  6 ?        00:00:00 kworker/0:0H-events_highpri
[...]
5648 ?        00:00:00 gnome-control-c
5656 ?        00:00:00 gnome-terminal-
5736 pts/1    00:00:00 bash
5791 pts/1    00:00:00 ps
5792 pts/1    00:00:00 less
(END)

Listen Sie nur Ihre Prozesse auf

Die Ausgabe von ps -e kann überwältigend sein, verwenden Sie also -U um die Prozesse nur eines Benutzers zu sehen:

$ ps -U tux | less
 PID TTY          TIME CMD
3545 ?        00:00:00 systemd
3548 ?        00:00:00 (sd-pam)
3566 ?        00:00:18 pulseaudio
3570 ?        00:00:00 gnome-keyring-d
3583 ?        00:00:00 dbus-daemon
3589 tty2     00:00:00 gdm-wayland-ses
3592 tty2     00:00:00 gnome-session-b
3613 ?        00:00:00 gvfsd
3618 ?        00:00:00 gvfsd-fuse
3665 tty2     00:01:03 gnome-shell
[...]

Dadurch müssen 200 Prozesse weniger (mehr oder weniger hundert, je nach System, auf dem Sie es ausführen) sortiert werden.

Mit pstree können Sie dieselbe Ausgabe in einem anderen Format anzeigen Befehl:

$ pstree -U tux -u --show-pids
[...]
├─gvfsd-metadata(3921)─┬─{gvfsd-metadata}(3923)
│                      └─{gvfsd-metadata}(3924)
├─ibus-portal(3836)─┬─{ibus-portal}(3840)
│                   └─{ibus-portal}(3842)
├─obexd(5214)
├─pulseaudio(3566)─┬─{pulseaudio}(3640)
│                  ├─{pulseaudio}(3649)
│                  └─{pulseaudio}(5258)
├─tracker-store(4150)─┬─{tracker-store}(4153)
│                     ├─{tracker-store}(4154)
│                     ├─{tracker-store}(4157)
│                     └─{tracker-store}(4178)
└─xdg-permission-(3847)─┬─{xdg-permission-}(3848)
                        └─{xdg-permission-}(3850)

Listen Sie nur Ihre Prozesse mit Kontext auf

Mit -u können Sie zusätzlichen Kontext für alle Prozesse sehen, die Sie besitzen Option.

$ ps -U tux -u
USER  PID %CPU %MEM    VSZ   RSS TTY STAT START  TIME COMMAND
tux  3545  0.0  0.0  89656  9708 ?   Ss   13:59  0:00 /usr/lib/systemd/systemd --user
tux  3548  0.0  0.0 171416  5288 ?   S    13:59  0:00 (sd-pam)
tux  3566  0.9  0.1 1722212 17352 ?  S<sl 13:59  0:29 /usr/bin/pulseaudio [...]
tux  3570  0.0  0.0 664736  8036 ?   SLl  13:59  0:00 /usr/bin/gnome-keyring-daemon [...]
[...]
tux  5736  0.0  0.0 235628  6036 pts/1 Ss 14:18  0:00 bash
tux  6227  0.0  0.4 2816872 74512 tty2 Sl+14:30  0:00 /opt/firefox/firefox-bin [...]
tux  6660  0.0  0.0 268524  3996 pts/1 R+ 14:50  0:00 ps -U tux -u
tux  6661  0.0  0.0 219468  2460 pts/1 S+ 14:50  0:00 less

Fehlerbehebung mit PIDs

Wenn Sie Probleme mit einer bestimmten Anwendung haben oder einfach nur neugierig sind, was eine Anwendung auf Ihrem System sonst verwendet, können Sie mit pmap eine Speicherzuordnung des laufenden Prozesses anzeigen :

$ pmap 1776
5736:   bash
000055f9060ec000   1056K r-x-- bash
000055f9063f3000     16K r---- bash
000055f906400000     40K rw---   [ anon ]
00007faf0fa67000   9040K r--s- passwd
00007faf1033b000     40K r-x-- libnss_sss.so.2
00007faf10345000   2044K ----- libnss_sss.so.2
00007faf10545000      4K rw--- libnss_sss.so.2
00007faf10546000 212692K r---- locale-archive
00007faf1d4fb000   1776K r-x-- libc-2.28.so
00007faf1d6b7000   2044K ----- libc-2.28.so
00007faf1d8ba000      8K rw--- libc-2.28.so
[...]

Prozess-IDs

Das Procps-ng Das Paket enthält alle Befehle, die Sie benötigen, um zu untersuchen und zu überwachen, was Ihr System zu jedem Zeitpunkt verwendet. Egal, ob Sie nur neugierig sind, wie all die unterschiedlichen Teile eines Linux-Systems zusammenpassen, ob Sie einen Fehler untersuchen oder die Leistung Ihres Computers optimieren möchten, das Erlernen dieser Befehle verschafft Ihnen einen erheblichen Vorteil für Verständnis Ihres Betriebssystems.


Linux
  1. Schalten Sie Ihren Linux-Terminal-Texteditor mit ed ein

  2. Begeben Sie sich in Ihrem Linux-Terminal auf ein Abenteuer

  3. Linux-Sicherheit:Schützen Sie Ihre Systeme mit fail2ban

  4. Erfahren Sie mehr über Ihr Linux-System mit inxi

  5. So überwachen Sie die Linux-Systemleistung mit Sysstat

So retten Sie Ihr Windows- oder Linux-System mit Rescatux

5 Dinge, die zu tun sind, wenn die GUI Ihres Linux-Systems einfriert

Überwachen Sie die Ressourcennutzung des Linux-Systems mit SysMonTask

Beheben und überwachen Sie die Linux-Systemleistung mit nmon

So überwachen Sie Ihre Linux-Server mit Checkmk

So installieren Sie Sysdig, um Ihr Linux-System zu überwachen