Le 22 mars 2013 à 19:16, Wietse Venema a écrit : > [...] > > Hence my suggestion that Postfix use the kern.maxfilesperproc > value, as in a separate response (with code).
Hello Wietse, Intuitively, I came to that idea too. But because all those ambiguities, and before I (perhaps) get an explanation from Apple wrt their man page, I wanted to do a quick check. So, I wrote another quick and dirty piece of code (I know, I can't refrain): #include <sys/resource.h> #include <limits.h> #include <stdio.h> #include <sys/errno.h> int main(int argc, char **argv) { int i; struct rlimit rl; if (getrlimit(RLIMIT_NOFILE, &rl) < 0) { printf("getrlimit failed with rc=%i\n", errno); return -1; } for (i = OPEN_MAX - 100; i < INT_MAX ; i++) { rl.rlim_cur = i; if (setrlimit(RLIMIT_NOFILE, &rl) < 0) { printf("setrlimit failed with i=%i and rc=%i\n", i, errno); return -1; } } printf("Ended with i=%i\n", i); return 0; } and got those results: $ sysctl kern.maxfilesperproc kern.maxfilesperproc: 10240 $ ./setrlimit setrlimit failed with i=10241 and rc=22 $ sudo sysctl -w kern.maxfilesperproc=12000 kern.maxfilesperproc: 10240 -> 12000 $ ./setrlimit setrlimit failed with i=12001 and rc=22 $ sudo sysctl -w kern.maxfilesperproc=10240 kern.maxfilesperproc: 12000 -> 10240 $ ./setrlimit setrlimit failed with i=10241 and rc=22 So, allowable values for rlim_cur indeed seem to be bounded by the value of kern.maxfilesperproc; this appears quite logical, should one want to have such bounds defined for the operation of setrlimit(). I guess the code of open_limit() may thus (more or less) safely be arranged around the value of kern.maxfilesperproc. And I now have a good reason to submit a bug report: the man page is wrong. ;-) Axel