FreeBSD QandA 152
Q. プロセスを60くらい立ち上げたあたりから、新しくプロセスを起動しよう
とすると、
% less foo.gz
No more processes.
No more processes.
"foo.gz" may be a binary file. See it anyway?
と言われてしまいます。カーネルの NPROC の値は
MAXUSERS=5
#define NPROC (40 + 32 * MAXUSERS)
と設定しているので、十分だと思いますが、どうしてでしょうか。
A. NPROCの数は、全プロセスの上限値であって、ひとりのユーザが使用できる
プロセスの上限ではありません。通常、ひとりのユーザが実行できるプロセス
数には上限値が設定されており、
sh(bash) ulimit
csh(tcsh) limit
の各コマンドで変更できます。
また、systat を利用すれば、その時点でのシステムの利用情報を得ることが
できます。詳しくは man systat を見てください。
1ユーザ当たりのプロセスのソフトリミットを変える方法はカーネルのリコン
フィグしか知りません。(3.0系では/etc/login.confというファイルでソフト
リミットを変えられるそうです)自分は
options CHILD_MAX=128
ついでに、、、
options OPEN_MAX=128
を指定しています。これでソフトリミットが128になります。
sysctlコマンドでも 変更出来ると思います。
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。