|
Listę wszystkich uruchomionych procesów oraz dotyczące ich dane
otrzymamy dzięki poleceniu ps
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1350 0.0 0.1 1788 868 ? Ss May27 0:00 syslog-ng
zenek 2252 0.0 1.2 11316 6668 ? Ss May27 0:01 xfce4-session
root 2301 0.0 0.3 2748 1556 tty2 Ss May27 0:00 -bash
|
Oraz w formie drzewa procesów rodziców i procesów potomnych
$ ps xf
PID TTY STAT TIME COMMAND
2459 ? S 0:32 xmms
2460 ? S 0:00 \_ xmms
2461 ? S 0:00 \_ xmms
2465 ? S 0:00 \_ xmms
2816 ? S 0:00 \_ xmms
|
W przypadku potrzeby ciągłego śledzenia zmian w systemie możemy użyć
programu top. Program ten pokazuje najbardziej
zasobożerne procesy. Dodatkowo na bieżąco wyświetla
całkowite zużycie procesora (CPU), pamięci operacyjnej(Mem) oraz
zajętość przestrzeni wymiany (Swap).
$ top
top - 01:38:54 up 3:28, 4 users, load average: 0.10, 0.08, 0.08
Tasks: 63 total, 2 running, 61 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.3% us, 1.3% sy, 0.0% ni, 96.1% id, 0.0% wa, 0.3% hi, 0.0% si
Mem: 516244k total, 440344k used, 75900k free, 11840k buffers
Swap: 1076312k total, 0k used, 1076312k free, 328012k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2240 root 15 0 62644 24m 45m S 1.6 4.9 7:37.40 X
2892 zenek 16 0 1880 928 1672 R 0.6 0.2 0:00.05 top
2695 zenek 16 0 6532 3824 5056 R 0.3 0.7 0:01.63 xterm
1 root 16 0 1532 584 1372 S 0.0 0.1 0:00.82 init
|
Informacje o samej pamięci i przestrzeni wymiany uzyskamy dzięki
komendzie free
$ free
total used free shared buffers cached
Mem: 516244 445536 70708 0 11880 332728
-/+ buffers/cache: 100928 415316
Swap: 1076312 0 1076312
|
Całkowita ilość zużytej pamięci (razem z buforami dyskowymi)
mieści się w pierwszym wierszu w kolumnie USED. Zaś ilość pamięci
zużytej jedynie przez programy mieści się w drugim wierszu
w tej samej kolumnie.
Do śledzenia zmian zużycia zasobów systemu w funkcji czasu
warto polecić program vmstat z liczbą sekund
w parametrze. Podany czas jest odstępem pomiędzy pomiarami,
program pokazuje zmiany w wykorzystaniu pamięci, obszaru
wymiany, czasu procesora, przerwań czy wielkości transferu
do i z urządzeń masowych:
# vmstat 2
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 276896 980 89812 0 0 377 6 482 818 6 2 90 1
0 0 0 276780 980 89816 0 0 0 0 456 770 0 0 100 0
0 0 0 276772 980 89816 0 0 0 28 461 846 0 0 100 0 |
Szczegółowy opis oznaczeń kolumn odnajdziemy w podręczniku
systemowym man/info.
Do procesów których jesteśmy właścicielami możemy wysyłać sygnały (root
może wysłać sygnał do każdego procesu). Aby zakończyć jakiś proces
należy do procesu wysłać sygnał TERM. Dokonuje się tego poleceniem
kill lub killall.
Pierwsze zabija proces o podanym numerze PID (unikalnym identyfikatorze procesu)
np.:
Drugie z poleceń zabija wszystkie procesy, które mają podaną nazwę
np.:
Sygnał TERM może być nieskuteczny w niektórych wypadkach, wtedy
należy użyć bardziej brutalnej metody - sygnału KILL. Możemy go wysłać
programem kill lub killall z odpowiednim parametrem: "-9" lub "-KILL":
W systemach uniksowych można ustawiać priorytety uruchamianym programom
bądź też modyfikować bieżący priorytet działającego procesu. Priorytet
jest nazywany jest "liczbą nice". Mówi ona jak mili jesteśmy dla systemu
i innych użytkowników. Priorytet możemy ustawiać od -20 do +19, przy czym
domyślna wartość zazwyczaj wynosi 0. Ujemne wartości oznaczają
wyższy priorytet, zaś dodatnie niższy. Ujemną wartość może nadać tylko
superużytkownik.
Aby uruchomić proces z priorytetem innym niż domyślny należy użyć
programu nice np.:
Działającym procesom można zmieniać priorytet. Aby to zrobić
używamy polecenia renice:
|
|