|
Message-ID: <20231115223902.GY4163@brightrain.aerifal.cx> Date: Wed, 15 Nov 2023 17:39:03 -0500 From: Rich Felker <dalias@...c.org> To: Tavian Barnes <tavianator@...ianator.com> Cc: musl@...ts.openwall.com Subject: Re: Feature request: posix_spawnattr_setrlimit_np() On Wed, Nov 15, 2023 at 05:00:51PM -0500, Tavian Barnes wrote: > I have a program that raises its soft RLIMIT_NOFILE, but wants to > spawn processes with the original value (in case they use select(), > for example). There seems to be no nice way to do this with > posix_spawn(). I can temporarily lower the rlimit in the parent, but > that interferes with other threads, and can make posix_spawn() fail > with EMFILE. > > Corresponding glibc feature request: > https://sourceware.org/bugzilla/show_bug.cgi?id=31049 I don't have any objection to this as long as it's coordinated and there's agreement from other implementors, but there *is* a way to do it already. You posix_spawnp: sh -c 'ulimit -n whatever && exec "$0" "$@"' your_program args... This is the general solution to doing all sorts of "child process state setup" things that posix_spawn doesn't have a dedicated attribute for. Note that for a proposal for setting rlimits via an attribute, one complication that needs to be specified is whether the limits take place before or after file actions, since they could change the outcome of file actions. I'm not sure what the answer is, but just YOLO'ing an implementation without thinking about that is a bad idea. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.