le modifiche in /etc/security/limits.conf richiedono un riavvio?


144

Le modifiche /etc/security/limits.confrichiedono un riavvio prima che abbiano effetto?

Come se avessi uno script che imposta i seguenti limiti /etc/security/limits.conf, è necessario riavviare il sistema prima che questi limiti abbiano effetto?

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

2
la disconnessione dovrebbe essere sufficiente
UVV

Modifica il file /etc/security/limits.d/90-nproc.conf e riavvia il sistema

Risposte:


108

No, ma dovresti chiudere tutte le finestre delle sessioni attive. Ricordano ancora i vecchi valori. In altre parole, disconnettersi e riconnettersi. Ogni nuova sessione remota o una shell protetta locale ha effetto sulle modifiche dei limiti .


17
Cosa succede se desidero impostare i limiti per un utente che non dispone di un accesso, come se volessi impostare il nofilelimite 94000per l' mongodbutente? Come ho fatto senza riavviare? Devo solo riavviare il mongodbservizio?
Alexej Magura,

2
@AlexejMagura È possibile modificare i limiti dei processi in esecuzione con il prlimitcomando.
Bratchley

7
@Gilles, grazie per le precisazioni, ho modificato la mia risposta per evitare ambiguità. Tuttavia, l'avvio di un nuovo servizio utilizzando sudo service mongodb restartè sufficiente per consentire al servizio in esecuzione con i nuovi valori limite.
Slyx,

6
se si utilizza Ubuntu e mongodb viene avviato da start-up, la modifica di questi limiti non influirà su mongodb. Poiché upstartnon si legge / etc / security config bugs.launchpad.net/ubuntu/+source/upstart/+bug/938669 è necessario impostare la limitstanza nel suo file di configurazione upstart.
HVN

5
È un altro problema. upstartin base alla progettazione ignora i limiti stabiliti /etc/security/limits.conf.
Slyx,

35

Applica le modifiche direttamente a un processo in esecuzione se hai installato prlimit (viene fornito con util-linux-2.21)

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

per esempio

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

Fare riferimento qui


29

Per impostare temporaneamente il limite di file aperti per l'utente al quale si è attualmente connessi (ad es. "Root"): è inoltre possibile utilizzare il ulimitcomando per modificare i valori nella shell corrente. Tuttavia, i limiti rigidi possono essere regolati solo verso il basso a meno che tu non sia root.

Esempio:

# 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

Per cambiare nofilein 94000 puoi fare:

ulimit -n 94000

15

I limiti vengono ereditati da un processo padre ai relativi processi figlio. I processi eseguiti come root possono modificare i limiti in modo arbitrario; altri processi non possono aumentare i limiti rigidi. Pertanto, i limiti fissi stabiliti dal processo di accesso influiscono su tutti i processi in una sessione.

Se si modifica /etc/security/limits.conf, ciò influirà su tutte le nuove sessioni e sui processi in queste nuove sessioni. Non influirà sui processi che sono già in esecuzione, né sui processi avviati da processi che sono già in esecuzione.

Quindi, se è necessario aumentare alcuni limiti, è necessario disconnettersi e riconnettersi oppure avviare un'altra sessione (ad esempio con ssh localhosto su un'altra console).


4

Per citare la risposta di Tombart

Questi limiti verranno applicati dopo il riavvio.

Se si desidera applicare le modifiche senza riavviare, modificare /etc/pam.d/common-sessionaggiungendo questa riga alla fine del file:

session required pam_limits.so
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.