
Linux: Wiersz poleceń – procesy
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