'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 sesiones de terminales / 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 configurar el ulimit si cambio a la raíz:

$ sudo bash
$ ulimit -n 9086

Ahora, por supuesto, ejecutar todo como root es una estupidez, 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>
    
pregunta theomega 21.12.2016 - 09:01

1 respuesta

1

Después de haber tenido este mismo problema, encontré que mi secuencia de inicio de bash ( .bashrc o similar) estaba haciendo un ulimit -n 1024 ; y eso causó que tanto el soft como el hard se establecieran; el último de los cuales impidió cualquier intento de levantarlo después, dando lugar al error "bash: ulimit: open files: cannot modify limit: Operation not permitted" .

Por lo tanto, al eliminar ese comando se restauraron 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á volver a ulimit -n <whatever> .

En su caso, asumiendo que la causa es similar y que su Library/LaunchDaemons/limit.maxfiles.plist sigue en su lugar como se indica en la lista, espero que ulimit -Sn y ulimit -Hn informen que ambos son 200000 .

    
respondido por el cueedee 01.08.2018 - 15:30

Lea otras preguntas en las etiquetas