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()
atau getrlimit()
dan setrlimit()
. 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:
# Increase the upper limit on the number of open files:
ulimit -n 1024
Sekarang debugger saya tidak akan mengeluh bahwa itu tidak dapat membuka semua file yang dibutuhkan. Jelas, ini seharusnya tidak berdampak pada launchd.