rlimit_as

0th

Percentile

Resource Limits

Get and set RLIMIT values of the current process.

Usage
rlimit_as(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_core(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_cpu(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_data(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_fsize(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_memlock(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_msgqueue(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_nice(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_nofile(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_nproc(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_rtprio(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_rttime(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_sigpending(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

rlimit_stack(hardlim = NULL, softlim = hardlim, pid = 0, verbose = FALSE)

Arguments
hardlim

hard limit in bytes

softlim

soft limit in bytes.

pid

id of the target process.

verbose

print some C output (TRUE/FALSE)

References

Jeroen Ooms (2013). The RAppArmor Package: Enforcing Security Policies in R Using Dynamic Sandboxing on Linux. Journal of Statistical Software, 55(7), 1-34. http://www.jstatsoft.org/v55/i07/.

Ubuntu Manpage: getrlimit, setrlimit - get/set resource limits. http://manpages.ubuntu.com/manpages/precise/man2/getrlimit.2.html.

Aliases
  • rlimit_as
  • rlimit_core
  • rlimit_cpu
  • rlimit_data
  • rlimit_fsize
  • rlimit_memlock
  • rlimit_msgqueue
  • rlimit_nice
  • rlimit_nofile
  • rlimit_nproc
  • rlimit_rtprio
  • rlimit_rttime
  • rlimit_sigpending
  • rlimit_stack
Examples
# NOT RUN {
#load lib
library(RAppArmor)

#current limit
rlimit_as();

#set hard limit
rlimit_as(1e9);

#set separate hard and soft limit. 
rlimit_as(1e9, 1e8);

#soft limits can be elevated
rlimit_as(soft = 1e7);
rlimit_as(soft = 1e9);

#set other limits
rlimit_core(1e9);
rlimit_data(1e9);
rlimit_fsize(1e9);
rlimit_memlock(10000);
rlimit_msgqueue(1e5);
rlimit_nofile(10);
rlimit_nproc(100);
rlimit_rttime(1e9);
rlimit_sigpending(1e4);
rlimit_stack(1000);
rlimit_cpu(60);
# }
# NOT RUN {
testfun <- function(){
  Sys.sleep(3);
  repeat{
    svd(matrix(rnorm(1e6,1e3)));
  }
};
#will be killed after 8 seconds (3s idle, 5s CPU):
system.time(eval.secure(testfun(), RLIMIT_CPU=5));

#will be killed after 5 seconds
system.time(eval.secure(testfun(), timeout=5));
# }
Documentation reproduced from package RAppArmor, version 2.0.2, License: Apache License (== 2.0)

Community examples

Looks like there are no examples yet.