3.4 Prozesse

Inhalt

Prozesse anzeigen

top

Mit top können die CPU/RAM Auslastung sowie die laufenden Prozesse in “Realtime” angezeigt werden. Mit > und < ist es möglich, die Sortierung zu ändern. Wenn man z.B. einmal auf > drückt, ist die Anzeige nach Memoryverbrauch %MEM sortiert.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[user@computer ~/] top
top - 15:17:23 up  1:28,  1 user,  load average: 0.72, 0.62, 0.63
Tasks: 274 total,   1 running, 273 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.5 us,  1.0 sy,  0.0 ni, 95.8 id,  0.0 wa,  0.5 hi,  0.2 si,  0.0 st
MiB Mem :  15877.8 total,   9406.1 free,   3293.1 used,   3178.6 buff/cache
MiB Swap:   8008.0 total,   8008.0 free,      0.0 used.  11524.3 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  14647 user       20   0 5150064 288996 165832 S   7.3   1.8   4:27.99 gnome-shell
  15487 user       20   0 4120248 511736 258188 S   6.0   3.1   8:16.52 firefox
  16835 user       20   0 3047112 339436 180776 S   5.0   2.1   4:20.55 Web Content
  16494 user       20   0  618472  56108  44620 S   3.3   0.3   0:06.56 gnome-terminal-
  18866 user       20   0 3166120 304400 138824 S   2.3   1.9   0:10.08 thunderbird
  13588 root       20   0    9840   6424   4660 S   1.0   0.0   0:23.98 bluetoothd
  15250 user       20   0  527168   9372   7140 S   1.0   0.1   0:07.36 ibus-daemon
  14814 user       20   0 1686000  93732  63260 S   0.7   0.6   1:06.33 Xwayland
  14913 root       20   0  253104  30432   8904 S   0.7   0.2   0:10.55 sssd_kcm
  15334 user       20   0 2890192  86564  26844 S   0.7   0.5   0:30.17
  1 root           20   0  173380  16168  10324 S   0.3   0.1   0:08.65 systemd
  13345 root       20   0       0      0      0 I   0.3   0.0   0:01.79 kworker/u16:8-events_unbound
  13720 root       20   0  621864  21152  17716 S   0.3   0.1   0:02.54 NetworkManager
  15260 user       20   0  549028  26908  18268 S   0.3   0.2   0:03.04 ibus-extension-
  15749 user       20   0 3305972 543564 143828 S   0.3   3.3   1:14.62 Web Content
  16621 user       20   0 2891000 194096 147256 S   0.3   1.2   1:28.56 Web Content
  17131 user       20   0 2649968 131616 105032 S   0.3   0.8   0:04.57 Web Content

(Alternativ gibt es: atop und htop. Die können noch mehr Informationen anzeigen.)

ps

ps liefert eine Momentaufnahme der laufenden Prozesse. Wenn eine ständige Aktualisierung der Prozessliste gewünscht ist, so ist eines der oben genannten Tools zu verwenden.

1
2
3
4
[user@computer ~/] ps
    PID TTY          TIME CMD
  14834 pts/0    00:00:00 zsh
  19304 pts/0    00:00:00 ps

Um mehr Details zu sehen, kann ist zum Beispiel ps aux nützlich:

1
2
3
4
[user@computer ~/] ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0 170484 15060 ?        Ss   Jun15   2:23 /sbin/init
root           2  0.0  0.0      0     0 ?        S    Jun15   0:00 [kthreadd]

Fügt man noch den Switch f hinzu, wird eine Baumstruktur der Prozesse ausgegeben:

1
2
3
4
[user@computer ~/] ps faux
user+  105954  0.0  0.1  31352 25256 pts/6    Ss   08:24   0:00  |   \_ bash
user+  106015  0.0  0.2  52136 41768 pts/6    S+   08:24   0:00  |   |   \_ /usr/bin/python3 /home/user/.local/bin/pipenv shell
user+  106020  0.0  0.1  31360 25408 pts/8    Ss+  08:24   0:00  |   |       \_ /bin/bash -i

Nun sieht man, dass im bash Prozess mit der PID 105954 ein pipenv shell gestarted wurde.

Prozesse stoppen

kill

Um Prozesse zu stoppen kann kill verwendet werden.

Da kill sehr viele Möglichkeiten bietet (siehe man kill) werden wir hier nur auf die am häufigsten verwendeten Befehle eingehen.

Die grundlegende Bedienung ist jedoch immer gleich:

1
[user@computer ~/] kill -SIGNAL PID

Um alle unterstützen Signale anzuzeigen kann folgender Befehl verwendet werden:

1
[user@computer ~/] kill -l

Anstelle der Signale in der oberen Form anzugeben, kann auch die Nummer verwendet werden. Mit kill -l 11 wird die Signalnummer 11 in den entsprechenden Signalnamen, und mit kill -l HUP wird der Signalname HUP in seine Signalnummer übersetzt.

Beispiele

Dem Prozess 8330 ein Signal -STOP zum pausieren senden:

1
2
3
4
5
[user@computer ~/] kill -SIGSTOP 8330

oder auch:

[user@computer ~/] kill -19 8330

und anschliessend den angehaltenen Prozess 8330 mit -CONT weiterlaufen lassen:

1
2
3
4
5
[user@computer ~/] kill -SIGCONT 8330

oder auch:

[user@computer ~/] kill -18 8330

Um einen Prozess zu “töten” ohne Rücksicht auf Verlust kann der folgende Befehl verwendet werden:

1
2
3
4
5
[user@computer ~/] kill KILL 8330

oder:

[user@computer ~/] kill -9 8330