4 votos

`ulimit -n` para los que no son de root

Estoy corriendo El Capitan / Mac OSX 10.11.6 (15G1108) y quiero aumentar el "Max Open files" para algunos de mis terminales / sesiones bash. Estoy conectado con mis usuarios normales. Leí a través de todas las guías que pude encontrar y me las arreglé para aumentar algunos límites:

Como mi usuario:

$ launchctl limit maxfiles
    maxfiles    200000         200000        

Pero, cuando intento poner el límite, fracaso:

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

Lo extraño es que sí puedo poner el ulimit si cambio a Root:

$ sudo bash
$ ulimit -n 9086

Ahora, por supuesto, ejecutar todo como Root es estúpido, así que estoy buscando una solución mejor. ¿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>

3voto

cueedee Puntos 121

Habiendo tenido exactamente este mismo problema, al final descubrí que mi secuencia de inicio de bash ( .bashrc o similar) estaba haciendo un ulimit -n 1024 y eso provocó que tanto el blando y el duro límite que se fijó; esto último impidió cualquier intento de elevarlo posteriormente, dando lugar a la "bash: ulimit: open files: cannot modify limit: Operation not permitted" error.

Por lo tanto, al eliminar ese comando se restauraron los límites suaves y duros a los aparentes valores predeterminados del sistema de 256 y unlimited respectivamente. Esto último es lo que le permitirá ulimit -n <whatever> de nuevo.

En su caso, suponiendo que la causa sea similar y su Library/LaunchDaemons/limit.maxfiles.plist está todavía en su lugar como se indica, espero que ulimit -Sn y ulimit -Hn informará a ambos para que sean 200000 .

1voto

eXiaMike Puntos 11

En mi caso, en macOS Mojave, he tenido que configurar ambas cosas:

.bash_profile

ulimit -n 65536

.bashrc

ulimit -n 65536

Si sólo se configura desde el perfil, sólo se puede aumentar de 256 a 1024.

Es extraño porque no hay mucha información sobre esto en Internet, me pregunto cómo se las arreglan los desarrolladores sin ella.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X