background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the 

HTML to PDF API

PROCESY

 

Każda uruchomiona aplikacja tworzy w systemie odrębny proces, który zarządza pamięcią,
procesorem i zasobami wejścia i wyjścia, tak aby możliwe było wykonanie tej aplikacji. 
System Linuks daje złudzenie równoczesnego wykonywania wielu zadań. W rzeczywistości jeden
procesor może obsłużyć tylko jeden proces. Złudzenie takie jest osiągane dzięki podziałowi czasu, co
oznacza, że system operacyjny przełącza wykonywanie poszczególnych procesów w określonych,
bardzo krótkich odstępach czasu.

Do wyświetlania listy procesów pracujących w systemie służy polecenie ps.
Aby wyświetlić listę wszystkich bieżących procesów należy użyć parametru -A :

ps -A

Do wyświetlenia wszystkich procesów uruchomionych w systemie służą parametry -aux :

ps -aux

Na ekranie system w postaci kolumn wyświetli informacje o wszystkich procesach.

Objaśnienie poszczególnych kolumn jest następujące :

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the 

HTML to PDF API

wartość

znaczenie

USER

Identyfikator użytkownika będącego właścicielem procesu

PID

Identyfikator procesu

%CPU

Procentowe zużycie czasu procesora przez proces

%MEM

Procentowe zużycie pamięci przez proces

VSZ

Rzeczywisty rozmiar procesu, w kilobajtach

RSS

Ilość fizycznej pamięci używanej przez proces

TTY

Terminal związany z procesem

STAT

Status procesu; oto niektóre z możliwych wartości:

R - działający (Runnable)
D - oczekujący na dostęp do dysku (Disk wait)
I - nieaktywny przez mniej niż 20 sekund
S - nieaktywny przez więcej niż 20 sekund
T - wstrzymany
Z - Zombie, czyli proces porzucony, który powinien zostać zamknięty przez
inny proces
W - proces przeniesiony czasowo do pliku wymiany
N - wartość parametru Nice, oznaczającego priorytet procesu

START

Czas uruchomienia procesu

TIME

Zużyty czas procesora

COMMAND

Polecenie (wraz z parametrami), które spowodowało uruchomienie procesu

 

Każdy proces w systemie Linuks może zostać zabity (zamknięty). Jako zwykły użytkownik możesz

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the 

HTML to PDF API

zabić tylko te procesy, które są twoja własnością. Wyjątkiem jest super-użytkownik, który może zabić
dowolny proces.
Do zamykania procesów służy polecenie kill lub killall :

kill 123
zabije proces o numerze PID 123

killall -v mozilla
zabije procesy o nazwie 

mozilla

Do zabijania procesów pod X Window służy polecenie xkill , wydawane w oknie X-terminala. 
Po wydaniu tego polecenia kursor myszy zmienia swój kształt i wówczas można przemieścić go nad
okno programu, który chcemy zabić i nacisnąć lewy przycisk myszy.
Wykorzystując polecenie 

kill

 możemy do danego procesu wysłać jeden z możliwych sygnałów.

Polecenie 

kill 123

 jest równoważne z poleceniem

 kill -s SIGKILL 123

.

 

Możliwe sygnały to :

NAZWA

NUMER

AKCJA

KOMENTARZ

SIGHUP

1

A

Wyłączenie terminala kontrolnego albo śmierć
procesu kontrolującego

SIGINT

2

A

Przerwanie z klawiatury (CTRL+C)

SIGQUIT

3

C

Wyjście z klawiatury

SIGILL

4

C

Niepoprawna instrukcja

SIGTRAP

5

C

Pułapka śledzenia procesu

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the 

HTML to PDF API

SIGABRT

6

C

Sygnał zakończenia z funkcji abort

SIGBUS

7

C

Błąd magistrali (zły dostęp do pamięci)

SIGFPE

8

C

Błąd zmiennoprzecinkowy

SIGKILL

9

C

Sygnał natychmiastowego zabicia procesu

SIGUSR1

10

AEF

Sygnał użytkownika 1

SIGSEGV

11

A

Niewłaściwe wskazanie do pamięci

SIGUSR2

12

C

Sygnał użytkownika 2

SIGPIPE

13

A

Zerwany potok

SIGALRM

14

A

Sygnał alarmowy z funkcji alarm

SIGTERM

15

A

Sygnał przerwania działania procesu

SIGSTKFLT

16

A

Błąd stosu w koprocesorze

SIGCHLD

17

A

Proces potomny zatrzymany lub wyłączony

SIGCONT

18

B

Kontynuacja przy zatrzymaniu

SIGSTOP

19

DEF

Zatrzymanie procesu

SIGTSTP

20

D

Stop wpisany na terminalu

SIGTTIN

21

D

Proces w tle potrzebuje wejścia z terminala

SIGTTOU

22

D

Proces w tle wyprowadza dane na terminal

SIGURG 23

23

B

Ważne zdarzenie w gnieździe

 

Domyślna akcja to:

A  Zakończenie procesu

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the 

HTML to PDF API

B  Ignorowanie sygnału
C  Zakończenie procesu i zrzucenie rdzenia
D  Przerwanie procesu
F  Sygnał nie może być złapany
F  Sygnał nie może być ignorowany

Niektóre działania związane z procesami możemy wywołać korzystając ze skrótów klawiszowych. 
I tak na przykład zatrzymanie bieżącego procesu możemy dokonać kombinacją klawiszy :

[Ctrl]+[z]

, natomiast przerwanie bieżącego procesu kombinacją :

[Ctrl]+[c]

.

Zabicie procesu taką kombinacją klawiszy spowoduje nieuchronne zakończenie działania
programu i utratę wszelkich nie zapisanych danych związanych z tym programem.

Częstym objawem zawieszenia programu lub zabicia jego procesu jest utworzenie pliku 

core

 w

bieżącym katalogu. Pliki 

core

 to obrazy pamięci tworzone z myślą o debagerach.

Pliki 

core

 mają czasami duże rozmiary, dlatego jeśli nie zajmujemy się ich analizą, dobrym

rozwiązaniem jest usunięcie ich z systemu i zablokowanie możliwości ich tworzenia poleceniem :

ulimit -c 0

Jeśli jednak chciałbyś dowiedzieć się z jakiego powodu dany program padł, skorzystaj z polecenia :

gdb -c core

które uruchomi debugger analizujący pliki 

core

 .