Saya menjalankan El Capitan / Mac OSX 10.11.6 (15G1108) dan saya ingin meningkatkan "file Max Open" untuk beberapa sesi terminal / bash saya. Saya masuk dengan pengguna normal saya. Saya membaca semua panduan yang dapat saya temukan dan berhasil meningkatkan beberapa batasan:
Sebagai pengguna saya:
$ launchctl limit maxfiles
maxfiles 200000 200000
Tetapi, ketika saya mencoba untuk menetapkan batas, saya gagal:
$ ulimit -n 8096
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Yang aneh adalah bahwa saya benar-benar dapat mengatur ulimit jika saya beralih ke root:
$ sudo bash
$ ulimit -n 9086
Sekarang tentu saja, menjalankan semuanya sebagai root itu bodoh, jadi saya mencari solusi yang lebih baik. Bagaimana saya bisa mengizinkan pengguna saya juga meningkatkan "Batas File Maks" -nya?
Apa yang telah saya lakukan:
$ 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>
ulimit -n *
.Jawaban:
Setelah memiliki masalah yang sama persis ini, saya akhirnya menemukan bahwa urutan startup bash saya (
.bashrc
atau serupa) sedang melakukan aulimit -n 1024
; dan itu menyebabkan keduanya lunak dan itu keras batas untuk diatur; yang terakhir dicegah upaya apapun untuk menaikkannya setelah itu, menimbulkan"bash: ulimit: open files: cannot modify limit: Operation not permitted"
kesalahan.Jadi, menghapus perintah itu membuat batas lunak dan keras dikembalikan ke default sistem semula
256
danunlimited
masing-masing. Yang terakhir inilah yang akan memungkinkan Andaulimit -n <whatever>
lagi.Dalam kasus Anda, anggap penyebabnya sama dan Anda
Library/LaunchDaemons/limit.maxfiles.plist
masih di tempat seperti yang tercantum, saya berharap ituulimit -Sn
danulimit -Hn
akan melaporkan keduanya200000
.sumber