Getting "-bash: fork: Resource temporarily unavailable" in OSX

8,874

Solution 1

Use ulimit -a in a console to find out the limit. Here in Linux, it's max user processes.

If this value is too low, raise it: http://hints.macworld.com/article.php?story=200311151254441

Solution 2

Check if your bash script isn't called itself recursively. Don't do that.

Share:
8,874

Related videos on Youtube

exolab
Author by

exolab

Updated on September 18, 2022

Comments

  • exolab
    exolab over 1 year

    I seem to run into problems with the max. number of processes every so often. Anyone know what is best practice for fixing this?

    Running OSX 10.6 on a MacBook Pro i7.

    ulimit -a returns these values:

    core file size (blocks, -c)     0
    data seg size (kbytes, -d)      unlimited
    file size (blocks, -f)      unlimited
    max locked memory (kbytes, -l)      unlimited
    max memory size (kbytes, -m)        unlimited
    open files  (-n)        256
    pipe size  (512 bytes, -p)      1
    stack size (kbytes, -s)         8192
    cpu time  (seconds, -t)      unlimited
    max user processes  (-u)        266
    virtual memory  (kbytes, -v)         unlimited
    

    When the error occurred I checked, and there were 102 running tasks and 523 threads.

  • exolab
    exolab almost 13 years
    Thank you for your input. I have added the output from ulimit to the original post. But shouldn't I have been fine, looking at these numbers?
  • dingzhihu
    dingzhihu almost 13 years
    Maybe. You can run 266 processes at the same time. The desktop, all your open applications and all terminals count towards that number. Try ps -fu $LOGNAME | wc -l to see how many processes you already have.
  • exolab
    exolab almost 13 years
    Well, I have this tool running in my status bar which showed 102 tasks and 523 threads. I reckon that the tasks count towards the processes, which would mean I was well below the limit. Anyhow, I have now increased the limit to 2048. Let's see if that helps. Thank you for your support.