diff options
| author | Alyssa Ross <hi@alyssa.is> | 2025-11-09 18:32:14 +0100 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2025-11-09 21:13:20 +0000 |
| commit | c3a8ef7034fb2bc02f35381a8970ac026822a810 (patch) | |
| tree | fe078f0067ce443b4ceb102ffa2782523768ae21 | |
| parent | 43253d337ef7a0b74e482e8bf847cb7c12744da0 (diff) | |
| download | s6-c3a8ef7034fb2bc02f35381a8970ac026822a810.tar.gz | |
s6-softlimit: add -P option for RLIMIT_RTPRIO
Bash ulimit uses -r for this, but in s6-softlimit that was already
taken. I could have used -R, but Bash uses that for RLIMIT_RTTIME, so
I didn't want to claim that one and create a similarly difficult
decision for somebody adding that in future. I decided to use -P (for
"priority") as the least bad still-available option.
| -rw-r--r-- | doc/s6-softlimit.html | 3 | ||||
| -rw-r--r-- | src/daemontools-extras/s6-softlimit.c | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/doc/s6-softlimit.html b/doc/s6-softlimit.html index 05701ce..49a5b40 100644 --- a/doc/s6-softlimit.html +++ b/doc/s6-softlimit.html @@ -25,7 +25,7 @@ s6-softlimit changes its process limits, then executes into another program. <h2> Interface </h2> <pre> - s6-softlimit [ -H | -h ] [ -a <em>allmem</em> ] [ -c <em>core</em> ] [ -d <em>data</em> ] [ -f <em>fsize</em> ] [ -l <em>lock</em> ] [ -m <em>mem</em> ] [ -o <em>ofiles</em> ] [ -p <em>proc</em> ] [ -r <em>res</em> ] [ -s <em>stack</em> ] [ -t <em>cpusecs</em> ] <em>prog...</em> + s6-softlimit [ -H | -h ] [ -a <em>allmem</em> ] [ -c <em>core</em> ] [ -d <em>data</em> ] [ -f <em>fsize</em> ] [ -l <em>lock</em> ] [ -m <em>mem</em> ] [ -o <em>ofiles</em> ] [ -P <em>prio</em> ] [ -p <em>proc</em> ] [ -r <em>res</em> ] [ -s <em>stack</em> ] [ -t <em>cpusecs</em> ] <em>prog...</em> </pre> <ul> @@ -58,6 +58,7 @@ and s6-softlimit will die. There is virtually no reason to ever use this. </li> <li> <tt>-l <em>lock</em></tt> : limit the available locked memory to <em>lock</em> bytes. </li> <li> <tt>-m <em>mem</em></tt> : limit all types of memory to <em>mem</em> bytes. </li> <li> <tt>-o <em>ofiles</em></tt> : limit the number of open fds to <em>ofiles</em>. </li> + <li> <tt>-P <em>prio</em></tt> : limit the real-time priority to <em>prio</em>. </li> <li> <tt>-p <em>proc</em></tt> : limit the number of processes to <em>proc</em> (per user). </li> <li> <tt>-r <em>res</em></tt> : limit the available physical memory to <em>res</em> bytes. </li> <li> <tt>-s <em>stack</em></tt> : limit the available stack memory to <em>stack</em> bytes. </li> diff --git a/src/daemontools-extras/s6-softlimit.c b/src/daemontools-extras/s6-softlimit.c index d6112b2..beb7325 100644 --- a/src/daemontools-extras/s6-softlimit.c +++ b/src/daemontools-extras/s6-softlimit.c @@ -41,7 +41,7 @@ int main (int argc, char const *const *argv) PROG = "s6-softlimit" ; for (;;) { - int opt = subgetopt_r(argc, argv, "hHa:c:d:f:l:m:o:p:r:s:t:", &l) ; + int opt = subgetopt_r(argc, argv, "hHa:c:d:f:l:m:o:P:p:r:s:t:", &l) ; if (opt == -1) break ; switch (opt) { @@ -105,6 +105,11 @@ int main (int argc, char const *const *argv) doit(RLIMIT_NPROC, l.arg) ; #endif break ; + case 'P' : +#ifdef RLIMIT_RTPRIO + doit(RLIMIT_RTPRIO, l.arg) ; +#endif + break ; case 'r' : #ifdef RLIMIT_RSS doit(RLIMIT_RSS, l.arg) ; |
