Informacja oraz operacje na uruchomionych procesach w wierszu poleceń / terminalu systemu Linux.
PS – lista aktualnie uruchomionych procesów w systemie
ps
PID TTY TIME CMD
2542 pts/4 00:00:00 bash
2573 pts/4 00:00:00 top
2625 pts/4 00:00:00 ps
ps -ef – lista wszystkich procesów w systemie wraz z informacjami szczegółowymi
ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 20:15 ? 00:00:02 /sbin/init splash
root 2 0 0 20:15 ? 00:00:00 [kthreadd]
root 4 2 0 20:15 ? 00:00:00 [kworker/0:0H]
root 6 2 0 20:15 ? 00:00:00 [mm_percpu_wq]
root 7 2 0 20:15 ? 00:00:00 [ksoftirqd/0]
root 8 2 0 20:15 ? 00:00:00 [rcu_sched]
root 9 2 0 20:15 ? 00:00:00 [rcu_bh]
root 10 2 0 20:15 ? 00:00:00 [migration/0]
root 11 2 0 20:15 ? 00:00:00 [watchdog/0]
(...)
ps -eLf – lista wszystkich wątków (proces może zawierać wiele wątków)
ps -eLf
UID PID PPID LWP C NLWP STIME TTY TIME CMD
root 1 0 1 0 1 20:15 ? 00:00:02 /sbin/init splash
root 2 0 2 0 1 20:15 ? 00:00:00 [kthreadd]
root 4 2 4 0 1 20:15 ? 00:00:00 [kworker/0:0H]
root 6 2 6 0 1 20:15 ? 00:00:00 [mm_percpu_wq]
root 7 2 7 0 1 20:15 ? 00:00:00 [ksoftirqd/0]
root 8 2 8 0 1 20:15 ? 00:00:00 [rcu_sched]
root 9 2 9 0 1 20:15 ? 00:00:00 [rcu_bh]
root 10 2 10 0 1 20:15 ? 00:00:00 [migration/0]
root 11 2 11 0 1 20:15 ? 00:00:00 [watchdog/0]
(...)
ps aux | head -10 – lista procesów wszystkich użytkowników, wypisanie 10 wierszy
ps aux | head -10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.1 119772 6080 ? Ss 20:15 0:02 /sbin/init splash
root 2 0.0 0.0 0 0 ? S 20:15 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 20:15 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S< 20:15 0:00 [mm_percpu_wq]
root 7 0.0 0.0 0 0 ? S 20:15 0:00 [ksoftirqd/0]
root 8 0.0 0.0 0 0 ? S 20:15 0:00 [rcu_sched]
root 9 0.0 0.0 0 0 ? S 20:15 0:00 [rcu_bh]
root 10 0.0 0.0 0 0 ? S 20:15 0:00 [migration/0]
root 11 0.0 0.0 0 0 ? S 20:15 0:00 [watchdog/0]
PSTREE – drzewo procesów
pstree
systemd─┬─NetworkManager─┬─dhclient
│ ├─dnsmasq
│ ├─{gdbus}
│ └─{gmain}
├─accounts-daemon─┬─{gdbus}
│ └─{gmain}
├─acpid
├─agetty
├─avahi-daemon───avahi-daemon
├─colord─┬─{gdbus}
│ └─{gmain}
├─cron
├─cups-browsed─┬─{gdbus}
│ └─{gmain}
├─cupsd
├─dbus-daemon
├─fwupd─┬─3*[{GUsbEventThread}]
│ ├─{fwupd}
│ ├─{gdbus}
│ └─{gmain}
(...)
TOP – automatycznie odświeżana lista aktualnych procesów w systemie, monitoring tego, co aktualnie dzieje się w systemie
top
top - 20:51:54 up 36 min, 1 user, load average: 0,11, 0,07, 0,11
Zadania:razem: 154, działających: 1, śpiących: 152, zatrzymanych: 1, zom
%CPU: 14,5 uż, 6,2 sy, 0,0 ni, 79,3 be, 0,0 io, 0,0 hi, 0,0 si, 0,0 sk
KiB RAM : 4174128 razem, 2771836 wolne, 632028 użyte, 770264 buf/cache
KiB Swap: 4330492 razem, 4330492 wolne, 0 użyte. 3284044 dost. RAM
PID UŻYTK. PR NI WIRT REZ WSP S %CPU %PAM CZAS+ KOMENDA
1813 student 20 0 1254240 204104 81188 S 9,5 4,9 1:21.17 compiz
926 root 20 0 417596 75024 33964 S 7,5 1,8 0:30.86 Xorg
2533 student 20 0 672808 38080 29364 S 3,0 0,9 0:08.55 gnome-termi+
Pierwsza linijka mówi nam o tym, która godzina, jak długo uruchomiony jest system, ilu jest zalogowanych użytkowników, jakie jest obciążenie systemu.
Druga linia to informacja o procesach: razem, działających, uśpionych, zatrzymanych, zombie.
Trzecia linia mówi o przydziale procesora. Kolejne zużycie pamięci RAM oraz partycji wymiany.
Lista procesów zawiera między innymi informacje o:
PID – numer identyfikacyjny procesu
UŻYTK – właściciel procesu
PR – priorytet
S – status procesu
W czasie gdy TOP jest uruchomiony możemy zabić wybrany proces. W tym celu należy nacisnąć k, wpisać numer PID procesu, który chcemy zakończyć oraz potwierdzić zakończenie procesu naciśnięciem klawisza ENTER.
Widząc na liście procesów:
2748 student 20 0 50212 3720 3168 R 0,7 0,1 0:01.54 top
Wybieram k oraz podaję numer powyższego procesu:
PID do zabicia/wysłania sygnału [domyślny pid = 1813] 2748
I potwierdzam:
Wysłanie do pidu 2748 sygnału [15/sigterm]
Kill – wysłanie sygnału do danego procesu.
Najczęściej wykorzystywany do zabicia procesu.
Wybrane sygnały:
| Numer | Pełna nazwa | Krótka nazwa | Opis |
|---|---|---|---|
| 1 | SIGHUP | HUP | Zawieszenie zwykle kończące proces |
| 2 | SIGINT | INT | Przerwanie zwykle kończące proces |
| 3 | SIGQUIT | QUIT | Wyjście zwykle kończące proces |
| 9 | SIGKILL | KILL | Zabicie |
| 15 | SIGTERM | TERM | Poprawne zakończenie procesu |
| 18 | SIGCONT | CONT | Wznawia zatrzymany proces |
| 19 | SIGSTOP | STOP | Zatrzymuje proces bez utraty danych |
student@student:~$ ps
PID TTY TIME CMD
2542 pts/4 00:00:00 bash
2573 pts/4 00:00:00 top
2678 pts/4 00:00:01 top
3063 pts/4 00:00:00 top
3089 pts/4 00:00:00 ps
student@student:~$ kill -9 3063
[3]+ Unicestwiony top
student@student:~$ ps
PID TTY TIME CMD
2542 pts/4 00:00:00 bash
2573 pts/4 00:00:00 top
2678 pts/4 00:00:01 top
3090 pts/4 00:00:00 ps
Killall – zabicie wszystkich procesów mających w nazwie tekst podany jako argument
Skróty klawiszowe:
CTRL + C – sygnał 2 – przerwanie procesu
CTRL + Z – sygnał 19 – zatrzymanie procesu