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.