czy zmiany w /etc/security/limits.conf wymagają ponownego uruchomienia?


144

Czy zmiany /etc/security/limits.confwymagają ponownego uruchomienia przed wejściem w życie?

Na przykład, jeśli mam skrypt, który ustawia następujące ograniczenia /etc/security/limits.conf, czy wymaga to ponownego uruchomienia systemu, zanim ograniczenia te zaczną obowiązywać?

* hard nofile 94000
* soft nofile 94000
* hard nproc 64000
* soft nproc 64000

2
wylogowanie powinno wystarczyć
UVV

Edytuj plik /etc/security/limits.d/90-nproc.conf i zrestartuj system

Odpowiedzi:


108

Nie, ale powinieneś zamknąć wszystkie aktywne okna sesji. Wciąż pamiętają stare wartości. Innymi słowy, wyloguj się i zaloguj ponownie. Każda zdalna nowa sesja lub lokalna bezpieczna powłoka wpływają na zmiany limitów .


17
Co się stanie, jeśli chcę ustawić limity dla użytkownika, który nie ma loginu, na przykład, jeśli chcę ustawić nofilelimit 94000dla mongodbużytkownika? Jak mogłem to zrobić bez restartu? Czy wystarczy zrestartować mongodbusługę?
Alexej Magura

2
@AlexejMagura Za pomocą polecenia możesz modyfikować ograniczenia uruchomionych procesów prlimit.
Bratchley,

7
@Gilles, dziękuję za dokładność, zredagowałem swoją odpowiedź, aby uniknąć dwuznaczności. Jednak uruchomienie nowej usługi przy użyciu sudo service mongodb restartwystarcza, aby usługa działała z nowymi wartościami granicznymi.
Slyx,

6
jeśli używasz Ubuntu, a mongodb jest uruchamiany przez upstart, to zmiana tych limitów nie wpłynie na mongodb. Ponieważ upstartnie czyta / etc / security config bugs.launchpad.net/ubuntu/+source/upstart/+bug/938669 , musisz ustawić sekcjęlimit w pliku konfiguracyjnym upstart.
HVNSweeting

5
To kolejny problem. upstartz założenia ignoruje ustawione limity /etc/security/limits.conf.
Slyx,

35

Zastosuj zmiany bezpośrednio do uruchomionego procesu, jeśli masz zainstalowany program prlimit (dostarczany z plikiem util-linux-2.21)

prlimit --pid <pid> --<limit>=<soft>:<hard>

na przykład

prlimit --pid 12345 --nofile=1024:2048

Zobacz tutaj


29

Aby tymczasowo ustawić limit otwartych plików dla użytkownika, na którym jesteś aktualnie zalogowany (np. „Root”): Możesz także użyć ulimitpolecenia, aby zmienić wartości w bieżącej powłoce. Jednak twarde limity można zmienić tylko w dół, chyba że jesteś rootem.

Przykład:

# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 62449
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Aby zmienić nofiledo 94000 można zrobić:

ulimit -n 94000

15

Limity są dziedziczone z procesu nadrzędnego do jego procesów podrzędnych. Procesy działające jako root mogą dowolnie zmieniać limity; inne procesy nie mogą zwiększyć twardych limitów. Zatem twarde limity ustawione przez proces logowania wpływają na wszystkie procesy w sesji.

Jeśli zmienisz /etc/security/limits.conf, wpłynie to na wszystkie nowe sesje i procesy w tych nowych sesjach. Nie wpłynie to na procesy, które są już uruchomione, ani procesy uruchomione przez procesy, które już działają.

Jeśli więc musisz zwiększyć pewne limity, musisz się wylogować i zalogować ponownie lub rozpocząć kolejną sesję (np. Z ssh localhostlub na innej konsoli).


4

Cytując odpowiedź @ Tombart

Limity te zostaną zastosowane po ponownym uruchomieniu.

Jeśli chcesz zastosować zmiany bez ponownego uruchamiania, zmodyfikuj /etc/pam.d/common-session, dodając ten wiersz na końcu pliku:

session required pam_limits.so
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.