Bash's ulimit currently does not support RLIMIT_RTTIME present in the Linux
kernel. If you think such support could be added, please consider using my
patch (in the attachment).
I had some trouble coming up with a string that shows up when invoking
ulimit -a. In the patch, it's "real-time cpu time" which is misleading,
since it suggests that this option is analogous to -t, (cpu time), which it
isn't. There's also a question which letter should be used to denote this
new option.
Please let me know what you think.
milloni
diff --git a/builtins/ulimit.def b/builtins/ulimit.def
index 62def4f..c700ba3 100644
--- a/builtins/ulimit.def
+++ b/builtins/ulimit.def
@@ -23,7 +23,7 @@ $PRODUCES ulimit.c
$BUILTIN ulimit
$FUNCTION ulimit_builtin
$DEPENDS_ON !_MINIX
-$SHORT_DOC ulimit [-SHabcdefiklmnpqrstuvxPT] [limit]
+$SHORT_DOC ulimit [-SHabcdefiklmnpqrstuvxPRT] [limit]
Modify shell resource limits.
Provides control over the resources available to the shell and processes
@@ -52,6 +52,7 @@ Options:
-v the size of virtual memory
-x the maximum number of file locks
-P the maximum number of pseudoterminals
+ -R the maximum time a real-time process can run without blocking
-T the maximum number of threads
Not all options are available on all platforms.
@@ -234,6 +235,9 @@ static RESOURCE_LIMITS limits[] = {
#ifdef RLIMIT_NPTS
{ 'P', RLIMIT_NPTS, 1, "number of pseudoterminals", (char *)NULL },
#endif
+#ifdef RLIMIT_RTTIME
+ { 'R', RLIMIT_RTTIME, 1, "real-time cpu time", "microseconds" },
+#endif
#ifdef RLIMIT_PTHREAD
{ 'T', RLIMIT_PTHREAD, 1, "number of threads", (char *)NULL },
#endif
@@ -743,7 +747,7 @@ printone (limind, curlim, pdesc)
else
sprintf (unitstr, "(-%c) ", limits[limind].option);
- printf ("%-20s %16s", limits[limind].description, unitstr);
+ printf ("%-20s %20s", limits[limind].description, unitstr);
}
if (curlim == RLIM_INFINITY)
puts ("unlimited");