ulimit -n
mengatur batas lunak secara default; Anda dapat menambahkan -H
opsi untuk melihat / mengatur batas hard.
Sebagian besar, batas lunak dan keras berperilaku seperti ini:
- proses root (sebenarnya, proses dengan
CAP_SYS_RESOURCE
) dapat menaikkan atau menurunkan batas pada proses apa pun.
- setiap proses pengguna dapat menurunkan batas pada proses lain yang dimiliki oleh pengguna itu.
- setiap proses pengguna dapat menaikkan batas lunak hingga batas keras pada proses yang dimiliki oleh pengguna tersebut.
- Jika suatu proses mencoba untuk melampaui batas lunaknya, upaya itu akan gagal.
Jadi, batas keras berfungsi sebagai batas pada batas lunak (kecuali untuk root, yang seperti biasa dapat melakukan apa saja).
Ada pengecualian: Batas CPU lunak mengirim SIGXCPU
sinyal. Suatu proses dapat memilih untuk mengabaikan itu, atau menghabiskan waktu melakukan pembersihan, dll. Setelah batas CPU yang keras dilewati, kernel mengirimkan SIGKILL
— yang tidak dapat ditangkap, ditangani, atau diabaikan. Jadi dalam hal ini, batas lunak berfungsi sebagai peringatan "Anda kehabisan waktu CPU — selesaikan dan keluar segera, atau yang lain!" dan batas yang sulit adalah "atau yang lain."
Sebagian besar adalah per-proses, tetapi beberapa (seperti RLIMIT_NPROC
) per pengguna. The getrlimit (2) panduan menspesifikasikan halaman untuk setiap batas.