Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When managing the limits of the operating system (specifically OSX), what is the difference and overlap between the functionality and history of these three tools:

  1. ulimit
  2. launchctl, launchd
  3. sysctl

I found it confusing to adjust the maximum processes and open files limits on OSX.

Does it matter if some processes are launched via the terminal versus the GUI?

Possibly related:

share|improve this question

1. ulimit

This is a builtin command of your shell (bash/ash/zsh etc). It temporarily sets process limits for the current shell. This is not OS X specific by the way.

2. sysctl

Most unix-like (Linux/*BSD/OS X) systems set global limit/kernel settings via the sysctl command//etc/sysctl.conf config file. But see below for the OS X caveat.

3. launchd

Seems like OS X does not honor sysctl.conf on startup anymore ( So on OS X, it looks like sysctl is merely usable for temporarily setting the global limits.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.