LPRng i ulimit -p unlimited
Jakub Bogusz
qboosh w prioris.mini.pw.edu.pl
Wto, 30 Paź 2001, 21:38:21 CET
Po dodaniu ulimit -p unlimited w daemon() przestało mi działać lpd
- gniazdko tworzy, ale żaden proces nie czyta z niego danych.
Doszedłem do tego, że lpd sprawdza RLIMIT_NPROC i na podstawie tego
wylicza ile maksymalnie serwerów może obsługiwać połączenia: jest to
limit_procesów/2, ograniczone przez opcję max_servers_active z lpd.conf.
Ponieważ limit jest zapisywany do zmiennej int, RLIM_INFINITY jest
traktowany jako -1, co po podzieleniu przez 2 daje 0 aktywnych serwerów.
Brzydki workaround to zmienić int na unsigned int (zmienna n w funkcji
Get_max_servers(), plik src/common/utilities.c) - wtedy nieskończony
limit będzie oznaczał 0x7FFFFFFF procesów - ale to zły pomysł, chyba
żeby do domyślnego lpd.conf dorzucić jakieś sensowne max_servers_active
(default jest 0, czyli bez ograniczeń).
--
Jakub Bogusz
http://prioris.mini.pw.edu.pl/~qboosh/
Więcej informacji o liście dyskusyjnej pld-devel-pl