modificar y aplicar limits.conf sin reiniciar

15

He agregado una línea /etc/security/limits.confpara aumentar la cantidad de archivos abiertos.

*    hard nofile 4096
root hard nofile 16384

Sin embargo, cuando ejecuto ulimit -ndice 1024, que es el valor predeterminado. Salí e inicié sesión pero aún veo 1024. ¿Cómo puedo aplicar el cambio?

mahmood
fuente

Respuestas:

8

Si está utilizando bash, ulimit -nsolo mostrará el límite flexible. Para obtener el límite duro, debes hacerlo ulimit -Hn.

En mi sistema, veo esto:

$ ulimit -n
1024
$ ulimit -Hn
4096
Flup
fuente
16

Cambios realizados por ulimitcomando:

$ ulimit -n 4096
$ ulimit -Hn 16384

se aplicará solo para el usuario actual y la sesión. Para que sea permanente, debe modificar /etc/security/limits.confagregando sus límites:

* soft nofile 4096
* hard nofile 16384

Sin embargo, el comodín *no se aplicará al rootusuario. Para hacerlo, debe indicarlo explícitamente:

* soft nofile 4096
* hard nofile 16384
root soft nofile 4096
root hard nofile 16384

Estos límites se aplicarán después del reinicio .

Si desea aplicar los cambios sin reiniciar , modifique /etc/pam.d/common-sessionagregando esta línea al final del archivo:

session required pam_limits.so

En el próximo inicio de sesión, debería ver los límites actualizados, puede verificarlos (límites suaves y duros):

$ ulimit -a
$ ulimit -Ha
Tombart
fuente
2
Tuve un problema con este enfoque que fue realmente extraño. Estoy usando Ubuntu 14 y habilitado pam_limits.soen /etc/pam.d/common-session. He configurado en el /etc/security/limits.confusuario x para tener límites rígidos y flexibles para nofile64000. sudo -u xluego ulimit -ame muestra que los cambios no se aplicaron. Me di cuenta de eso suy sudotengo diferentes configuraciones de pam, por lo que para que funcione correctamente, necesitaba habilitar el pam_limits.soin /etc/pam.d/common-session-noninteractive. Si se pregunta cuál es el caso de uso, uso ansible y sudo para cambiar de usuario.
hahcho
1
Por alguna razón, tuve que agregarlo /etc/pam.d/common-session-noninteractivepara que funcione.
Sumit