Subject: per process file descriptor limit
To: None <netbsd-users@netbsd.org>
From: Milos Negovanovic <milos.negovanovic@googlemail.com>
List: netbsd-users
Date: 02/04/2007 13:27:13
Hi,

I am wondering what is the right way to set per process file descriptor
limit? I have "ulimit -n 2048" in shell's rc file but it doesn't seem to
have any effect:

milosn@piccolo ~ $ sysctl -w proc.$$.rlimit.descriptors.soft=499
proc.335.rlimit.descriptors.soft: 200 -> 499
milosn@piccolo ~ $ sysctl -w proc.$$.rlimit.descriptors.soft=500
proc.335.rlimit.descriptors.soft: 499 -> 500
milosn@piccolo ~ $ sysctl -w proc.$$.rlimit.descriptors.soft=501
sysctl: proc.335.rlimit.descriptors.soft: sysctl() failed with Invalid
argument

500 is some limit hardcoded somewhere i presume.

It does work for root user:

root@piccolo milosn # sysctl -w proc.$$.rlimit.descriptors.soft=1024
proc.11243.rlimit.descriptors.soft: 2048 -> 1024
root@piccolo milosn # sysctl -w proc.$$.rlimit.descriptors.soft=2048
proc.11243.rlimit.descriptors.soft: 1024 -> 2048

Regards
Milos