ulimit: difference between hard and soft limits

What is the difference between hard and soft limits in ulimit?

For number of open files, I have a soft limit of 1024 and a hard limit of 10240.
It is possible to run programs opening more than 1024 files. What is the soft limit for?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

A hard limit can only be raised by root (any process can lower it). So it is useful for security: a non-root process cannot overstep a hard limit. But it’s inconvenient in that a non-root process can’t have a lower limit than its children.

A soft limit can be changed by the process at any time. So it’s convenient as long as processes cooperate, but no good for security.

A typical use case for soft limits is to disable core dumps (ulimit -Sc 0) while keeping the option of enabling them for a specific process you’re debugging ((ulimit -Sc unlimited; myprocess)).

The ulimit shell command is a wrapper around the setrlimit system call, so that’s where you’ll find the definitive documentation.

Note that some systems may not implement all limits. Specifically, some systems don’t support per-process limits on file descriptors (Linux does); if yours doesn’t, the shell command may be a no-op.

Method 2

The hard limit is for the security purpose. For a non-root user, he can only decrease the hard limit from the currently set hard limit; he cannot increase it. Increasing the hard limit can be done only by root user (or maybe with sudo privilege, not sure about that). What a non-root user can do is choose a limit (called soft limit) which can be in the range [0, hard limit] for its processes. Its the soft limit which is seen and taken in consideration by the processes.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x