NOTE
ulimit and Resource Limits
Soft and hard per-process resource limits, inheritance, file descriptors, processes, and memory-related constraints.
This is a historical learning note and may contain outdated or incomplete understanding.
ulimit is a shell interface for viewing or changing process resource limits such as open file descriptors, process counts, core dumps, and some memory-related limits. Limits normally have soft and hard values and are inherited by child processes.
Changing a shell limit does not automatically change already-running services. Service managers, PAM, containers, cgroups, kernel-wide limits, and application settings may impose additional constraints.
For “too many open files,” verify both the process limit and actual descriptor usage before increasing limits.