Linux Ubuntu - zarządzanie procesami
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:~$