プロセス数制限

仕事環境を移してそれなりに順調だったのだけど、今日作業中ターミナルから一切の新規プロセスがforkできなくなった。

fork failed: resource temporarily unavailable

とか言われるので、メモリ不足かと驚いたがなんのことはないlimitによって1ユーザあたりのプロセス数が低い値に制限されているのが原因らしい。手元のMacOS X 10.5.1(Leopard)で調べたところ532と出た。プロセス数にしては大きい値だが何故かこの数値にもひっかかってしまうようだ、恐らくスレッド数でカウントするからだろう。QuickSilverとかは1プロセス上がるだけで200以上のスレッドを生成するようだし。
ともあれ、ほかのリソースに問題がないようなら制限を解除してしまえる。
このあたりを参考に、カーネル的制限を/etc/sysctl.confで

kern.maxproc=2048
kern.maxprocperuid=1024

ユーザランドでの制限を/etc/launchd.confに

limit maxproc 1024

として解除する。もちろん再起動が必要。
わりとFAQっぽいが、なぜにこんな低いところに制限があるんだろう。普通のユーザでも引っかかりそうな気もするが。