`ulimit -n` para no root

3

Estoy ejecutando El Capitan / Mac OSX 10.11.6 (15G1108) y quiero aumentar los "archivos de apertura máxima" para algunas de mis terminales / sesiones de bash. Estoy conectado con mis usuarios normales. Leí todas las guías que pude encontrar y logré aumentar algunos límites:

Como mi usuario:

$ launchctl limit maxfiles
    maxfiles    200000         200000        

Pero, cuando intento establecer el límite, fallo:

$ ulimit -n 8096
-bash: ulimit: open files: cannot modify limit: Operation not permitted

Lo extraño es que realmente puedo establecer el ulimit si cambio a la raíz:

$ sudo bash
$ ulimit -n 9086

Ahora, por supuesto, ejecutar todo como root es estúpido, así que estoy buscando una mejor solución. ¿Cómo puedo permitir que mi usuario también aumente su "Límite máximo de archivos"?

Lo que ya he hecho:

$ cat /etc/sysctl.conf
kern.maxfiles=65536
kern.maxfilesperproc=65536

$ cat /Library/LaunchDaemons/limit.maxfiles.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
    <dict>
      <key>Label</key>
        <string>limit.maxfiles</string>
      <key>ProgramArguments</key>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxfiles</string>
          <string>200000</string>
          <string>200000</string>
        </array>
      <key>RunAtLoad</key>
        <true/>
      <key>ServiceIPC</key>
        <false/>
    </dict>
  </plist>
theomega
fuente
Hmm, extraño: en mi VM ElCap cada usuario puede cambiar el límite de archivos abiertos con ulimit -n *.
klanomath

Respuestas:

1

Habiendo tenido exactamente el mismo problema, finalmente encontré que mi secuencia de inicio de bash ( .bashrc o similar) estaba haciendo una ulimit -n 1024; y que causó tanto la suavidad y la difícil límite para establecer el último de los cuales impidió cualquier intento de levantarlo después, dando lugar a la "bash: ulimit: open files: cannot modify limit: Operation not permitted" error.

Por lo tanto, al eliminar ese comando se restablecieron los límites flexibles y duros a los valores predeterminados aparentes del sistema de 256 y unlimited respectivamente. Lo último es lo que te permitirá ulimit -n <whatever> otra vez.

En su caso, suponiendo que la causa es similar y su Library/LaunchDaemons/limit.maxfiles.plist sigue en el lugar que figura en la lista, espero que ulimit -Sn y ulimit -Hn reportará tanto para ser 200000.

cueedee
fuente