Linux | Terminal - procesy · Technik informatyk egzamin zawodowy

Soisk / Linux

Linux | Terminal - 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