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.
---
doc/s6-softlimit.html | 3 ++-
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)
{
@@ -103,6 +103,11 @@ int main (int argc, char const *const *argv)
case 'p' :
#ifdef RLIMIT_NPROC
doit(RLIMIT_NPROC, l.arg) ;
+#endif
+ break ;
+ case 'P' :
+#ifdef RLIMIT_RTPRIO
+ doit(RLIMIT_RTPRIO, l.arg) ;
#endif
break ;
case 'r' :
base-commit: a456cc8c4123e05f8d6c3620979961add7f0ed4e
--
2.51.0