Tidak ada konfigurasi ulimit dalam file startup sistem / skrip startup shell.
ulimit -a
menunjukkan:
-u: processes 1064
-n: file descriptors 256
launchctl limit
menunjukkan:
maxproc 2048 2048
maxfiles 2048 2048
Samar-samar saya ingat bahwa batasan launchctl harus cocok dengan output ulimit shell, saya mungkin salah.
Apakah ada hubungan antara batas lauchctl dan ulimit?
Jawaban:
Dalam shell, ulimit menyediakan "kontrol atas sumber daya yang tersedia untuk shell dan untuk proses yang dimulai olehnya" (lihat
man bash
). Karena itu, ia hanya berlaku untuk cangkang dan anak-anaknya. Batasan untuk launchd terkait dengannya dan proses yang dikelolanya. Keduanya terpisah.Program individu dapat menetapkan batas sumber daya mereka sendiri dengan memanggil rutin Perpustakaan C Standar
ulimit()
ataugetrlimit()
dansetrlimit()
. Batas sumber daya tertentu tidak dapat ditinggikan kecuali prosesnya berjalan sebagai pengguna super.Sebagai contoh praktis, saya men-debug proyek perangkat lunak besar dan batas default shell untuk jumlah file yang terbuka tidak cukup besar. Dalam file .bashrc saya, saya memiliki yang berikut ini:
Sekarang debugger saya tidak akan mengeluh bahwa itu tidak dapat membuka semua file yang dibutuhkan. Jelas, ini seharusnya tidak berdampak pada launchd.
sumber
launchctl limit
; meskipun pengguna dapat mengubah nomor ulimit, namun mereka mungkin tidak melebihilaunchctl limit
batas keras.