Linux Ubuntu - zarządzanie procesami

Z SOISK systemy operacyjne i sieci komputerowe
Przejdź do nawigacji Przejdź do wyszukiwania


top

Polecenie top wyświetla listę najważniejszych procesów systemowych. Lista jest odświeżana. Wyświetlane są procesy najbardziej obciążające procesor oraz pamięć. Informacje z pierwszej kolumny, czyli PID (process id) wykorzystujemy m.in. do zamykania procesów.

top - 11:11:15 up 11 min,  2 users,  load average: 1,31, 1,64, 1,21
Tasks: 157 total,   1 running, 156 sleeping,   0 stopped,   0 zombie
%Cpu(s):  8,0 us, 32,8 sy,  0,3 ni, 58,5 id,  0,0 wa,  0,0 hi,  0,3 si,  0,0 st
KiB Mem:   1025988 total,   772492 used,   253496 free,    17048 buffers
KiB Swap:  1046524 total,        0 used,  1046524 free.   385336 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND      
 2058 uczen     20   0  350120 114260  34704 S 14,8 11,1   0:31.83 compiz       
 1058 root      20   0  142492  39404  10508 S 14,5  3,8   0:28.67 Xorg         
 3109 uczen     20   0  138136  17304  12808 S  6,1  1,7   0:04.56 gnome-termi+ 
 3168 uczen     20   0    6648   1468   1088 R  1,3  0,1   0:01.84 top          
 1825 uczen     20   0  118632  13880  10500 S  1,0  1,4   0:00.98 ibus-ui-gtk3 
    4 root      20   0       0      0      0 S  0,6  0,0   0:02.64 kworker/0:0  
 1785 uczen     20   0   48116   6588   3604 S  0,6  0,6   0:01.43 ibus-daemon  
 1807 uczen     20   0  149088  19740  11280 S  0,6  1,9   0:01.96 unity-setti+ 
 1812 uczen     20   0  117036  20004  14728 S  0,6  1,9   0:00.86 hud-service  
   44 root      20   0       0      0      0 S  0,3  0,0   0:01.10 kworker/u2:2 
 1518 root      20   0   25936   1020    736 S  0,3  0,1   0:02.80 VBoxService  
 1835 uczen     20   0  119384  15256  11428 S  0,3  1,5   0:01.60 unity-panel+ 
 1953 uczen     20   0   31092   5936   3404 S  0,3  0,6   0:00.38 ibus-engine+ 
 2170 uczen     20   0   54108   9016   6928 S  0,3  0,9   0:00.44 unity-fallb+ 
 2179 uczen     20   0  225164  23908  18340 S  0,3  2,3   0:02.55 nautilus     
    1 root      20   0    4556   2568   1444 S  0,0  0,3   0:07.93 init         
    2 root      20   0       0      0      0 S  0,0  0,0   0:00.06 kthreadd

Aby zamknąć proces naciśnij k. Pojawi się PID to signal/kill [default pid = 2058]. Domyślnie chce zabić compiz, ale zabijmy proces odpowiedzialny za top, czyli w moim wypadku 3168 (u was oczywiście PID będzie inny). Pojawi się Send pid 3464 signal [15/sigterm]. Możemy potwierdzić poprzez enter (wtedy jest domyślny kill, czyli 15)

ps

Polecenie ps służy do wyświetlania procesów.

uczen@linux:~$ ps
  PID TTY          TIME CMD
 2484 pts/0    00:00:00 bash
 2535 pts/0    00:00:00 ps

Polecenie bez opcji wyświetla tylko procesy mające ten sam efektywny identyfikator użytkownika (EUID), co bieżący użytkownik, oraz podłączone do tego samego terminala, do którego podłączona jest osoba uruchamiająca ps.

Użycie opcji daje nam więcej możliwości.

uczen@linux:~$ ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.6  0.2   4552  2564 ?        Ss   11:42   0:08 /sbin/init
root         2  0.0  0.0      0     0 ?        S    11:42   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    11:42   0:00 [ksoftirqd/0]
root         4  0.2  0.0      0     0 ?        S    11:42   0:03 [kworker/0:0]
root         5  0.0  0.0      0     0 ?        S<   11:42   0:00 [kworker/0:0H]
root         7  0.3  0.0      0     0 ?        S    11:42   0:04 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    11:42   0:00 [rcu_bh]

Widoczne powyżej wykorzystanie ps -aux zostało tylko częściowo wklejone.

Możemy ułatwić sobie wyszukiwanie używając grep. Na przykładzie widać wyszukanie procesu odpowiedzialnego za przeglądarkę firefox.

uczen@linux:~$ ps -aux |grep firefox
uczen     2685 12.9 10.1 468100 103956 ?       Sl   13:01   0:09 /usr/lib/firefox/firefox
uczen     2753  0.0  0.0   5920   824 pts/9    S+   13:02   0:00 grep --color=auto firefox

kill

Kill wysyła podany sygnał do danego procesu. Przeważnie używa się go do kończenia procesów.

Przykładowo: kill 2222 Zostanie wysłany domyślny sygnał 15 w celu poprawnego zamknięcia procesu.

kill -9 2222 lub kill -kill 2222 Zostanie wysłany sygnał 9 w celu bezwarunkowago unicestwienia 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


CTRL C lub CTRL Z

Wpisz ping localhost. Naciśnj kombinację CTRL C. Następnie wpisz ping localhost. Naciśnj kombinację CTRL Z.

CTRL C przerwanie procesu, czyli sygnał 2
CTRL Z zatrzymanie procesu, czyli sygnał 19

killall

Polecenie killall zamyka wszystkie procesy mające w nazwie podany tekst jako argument. Standardowo wysyła sygnał SIGTERM, czyli 15.

Przykład 1:

killall firefox zamyka procesy mające w nazwie firefox

Przykład 2:

uczen@linux:~$ killall -v firefox
Zabito firefox(2724) sygnałem 15
uczen@linux:~$