[ Pobierz całość w formacie PDF ]
j dro wysy a temu procesowi sygna SIGSEGV. Limit ten wynosi zwykle RLIM_INFINITY.
RLIMIT_CORE
Ustala maksymalny rozmiar w bajtach pliku zrzutu systemowego (core). Je li ograniczenie
jest niezerowe, pliki zrzutu systemowego wi ksze od tej wielko ci obcinane s do maksymal-
nego dopuszczanego rozmiaru. Je li ograniczenie wynosi zero, pliki zrzutu systemowego
nie s nigdy tworzone.
RLIMIT_CPU
Wyznacza maksymaln ilo czasu procesora w sekundach, która mo e by zu yta przez
proces. Je li proces dzia a d u ej ni to ograniczenie, j dro wysy a procesowi sygna SIGXCPU,
który mo e by jednak przechwycony i obs u ony przez ten e proces. Programy przeno ne
powinny zako czy swoje dzia anie po otrzymaniu takiego sygna u, poniewa POSIX nie
definiuje adnej akcji dla j dra po jego wys aniu. Jednak Linux zezwala procesom, by
kontynuowa y swoje dzia anie, a nast pnie wysy a regularnie co jedn sekund kolejne
sygna y SIGXCPU. Gdy tylko nast pi osi gni cie granicy ograniczenia twardego, do procesu
zostaje wys any sygna SIGKILL, który powoduje zako czenie jego dzia ania.
RLIMIT_DATA
Zarz dza maksymalnym rozmiarem w bajtach segmentu danych i stosu dla danego pro-
cesu. Próba zwi kszenia rozmiaru segmentu danych poza to ograniczenie przy pomocy
funkcji systemowej brk() ko czy si niepowodzeniem i zwraca ENOMEM.
RLIMIT_FSIZE
Okre la maksymalny rozmiar w bajtach dla pliku, który mo e by stworzony przez dany
proces. Je li proces spróbuje rozszerzy plik ponad t granic , j dro wy le mu sygna SIGXFSZ.
Sygna ten domy lnie ko czy dzia anie procesu. Proces mo e jednak przechwyci go i obs u-
y , co spowoduje, e kolejne próby wywo ania funkcji systemowej poszerzaj cej rozmiar
pliku b d ko czy si niepowodzeniem i zwraca b d EFBIG.
RLIMIT_LOCKS
Zarz dza maksymaln liczb blokad pliku, które mog by w posiadaniu przez dany pro-
ces (w rozdziale 8. mo na zapozna si z dyskusj na temat blokad pliku). Gdy tylko
ograniczenie zostaje osi gni te, dalsze próby otrzymania dodatkowych blokad pliku powinny
ko czy si niepowodzeniem i zwraca b d ENOLCK. J dro Linuksa w wersji 2.4.25 likwiduje
jednak t cech . Obecne wersje j dra pozwalaj na ustawienie ograniczenia, lecz nie powo-
duje to adnych zmian.
220 Rozdzia 6. Zaawansowane zarz dzanie procesami
Kup książkę Poleć książkę
RLIMIT_MEMLOCK
Okre la maksymalny rozmiar w bajtach dla pami ci, która mo e by zablokowana przy
pomocy funkcji systemowych mlock(), mlockall() lub shmctl() przez proces nieposiada-
j cy uprawnienia CAP_SYS_IPC (czyli tak naprawd przez proces nieb d cy administrato-
rem). Je li to ograniczenie zostaje przekroczone, wywo ania tych funkcji ko cz si b dem
i zwracaj kod EPERM. W praktyce rzeczywiste ograniczenie jest zaokr glone w dó , do
liczby ca kowitej b d cej wielokrotno ci liczby stron. Procesy posiadaj ce uprawnienie
CAP_SYS_IPC mog zablokowa dowoln liczb stron w pami ci i ograniczenie to nie powo-
duje w ich przypadku adnych zmian. Zanim pojawi a si wersja j dra 2.6.9, limit ten
dotyczy procesów z uprawnieniem CAP_SYS_IPC, a procesy bez przywilejów w ogóle nie
mog y blokowa adnych stron. Ograniczenie to nie jest cz ci standardu POSIX, wpro-
wadzi je system BSD.
RLIMIT_MSGQUEUE
Okre la maksymaln wielko obszaru w bajtach, który mo e by przydzielony przez u yt-
kownika dla potrzeb kolejek wiadomo ci w standardzie POSIX. Je li nowo utworzona ko-
lejka wiadomo ci przekroczy to ograniczenie, funkcja systemowa mq_open() wykona si
niepoprawnie i zwróci kod b du ENOMEM. Ograniczenie to nie jest cz ci standardu POSIX;
zosta o dodane w j drze wersji 2.6.8 i jest specyficzne dla Linuksa.
RLIMIT_NICE
Okre la maksymaln warto , do której dany proces mo e obni y swój poziom uprzej-
mo ci (czyli podnie swój priorytet). Jak zosta o to ju wcze niej omówione w niniejszym
rozdziale, procesy zwykle mog jedynie zwi ksza warto swojego poziomu uprzejmo ci
(zmniejsza swój priorytet). To ograniczenie umo liwia administratorowi ustalenie mak-
symalnej warto ci (czyli dolnej granicy poziomu uprzejmo ci), do której procesy mog
poprawnie zwi ksza swój priorytet. Poniewa poziomy uprzejmo ci mog by ujemne, j dro
interpretuje warto jako 20 - rlim_cur. Zatem je li ograniczenie ustawione jest na 40,
proces mo e obni y warto swojego poziomu uprzejmo ci do minimalnej warto ci rów-
nej 20 (jest to jednocze nie najwy szy mo liwy priorytet). To ograniczenie zosta o wpro-
wadzone w j drze w wersji 2.6.12.
RLIMIT_NOFILE
[ Pobierz całość w formacie PDF ]