'ulimit -n' per non-root

3

Utilizzo El Capitan / Mac OSX 10.11.6 (15G1108) e voglio aumentare i "Max Open files" per alcune delle mie sessioni di terminali / bash. Ho effettuato l'accesso con i miei utenti normali. Ho letto tutte le guide che ho trovato e sono riuscito ad aumentare alcuni limiti:

Come mio utente:

$ launchctl limit maxfiles
    maxfiles    200000         200000        

Tuttavia, quando provo a impostare il limite, non riesco:

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

La cosa strana è che in realtà posso impostare il ulimit se passo a root:

$ sudo bash
$ ulimit -n 9086

Ora ovviamente, eseguire tutto come root è stupido, quindi sto cercando una soluzione migliore. Come posso consentire al mio utente di aumentare anche il suo "Max Files Limit"?

Cosa ho già fatto:

$ 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>
    
posta theomega 21.12.2016 - 09:01
fonte

1 risposta

1

Avendo avuto questo stesso identico problema, alla fine ho scoperto che la mia sequenza di avvio bash ( .bashrc o simile) stava facendo un ulimit -n 1024 ; e questo ha causato il set di entrambi i limiti e duri ; l'ultimo dei quali impediva qualsiasi tentativo di sollevarlo in seguito, dando origine all'errore "bash: ulimit: open files: cannot modify limit: Operation not permitted" .

Quindi, rimuovendo quel comando i limiti soft e hard sono stati ripristinati ai valori di default apparenti di 256 e unlimited rispettivamente. Quest'ultimo è ciò che ti renderà nuovamente ulimit -n <whatever> .

Nel tuo caso, supponendo che la causa sia simile e il tuo Library/LaunchDaemons/limit.maxfiles.plist sia ancora presente come elencato, mi aspetto che ulimit -Sn e ulimit -Hn riportino entrambi in 200000 .

    
risposta data 01.08.2018 - 15:30
fonte

Leggi altre domande sui tag