...
1 package main
2
3 import (
4 "fmt"
5
6 "golang.org/x/sys/unix"
7 )
8
9 var rlimitMap = map[string]int{
10 "RLIMIT_CPU": unix.RLIMIT_CPU,
11 "RLIMIT_FSIZE": unix.RLIMIT_FSIZE,
12 "RLIMIT_DATA": unix.RLIMIT_DATA,
13 "RLIMIT_STACK": unix.RLIMIT_STACK,
14 "RLIMIT_CORE": unix.RLIMIT_CORE,
15 "RLIMIT_RSS": unix.RLIMIT_RSS,
16 "RLIMIT_NPROC": unix.RLIMIT_NPROC,
17 "RLIMIT_NOFILE": unix.RLIMIT_NOFILE,
18 "RLIMIT_MEMLOCK": unix.RLIMIT_MEMLOCK,
19 "RLIMIT_AS": unix.RLIMIT_AS,
20 "RLIMIT_LOCKS": unix.RLIMIT_LOCKS,
21 "RLIMIT_SIGPENDING": unix.RLIMIT_SIGPENDING,
22 "RLIMIT_MSGQUEUE": unix.RLIMIT_MSGQUEUE,
23 "RLIMIT_NICE": unix.RLIMIT_NICE,
24 "RLIMIT_RTPRIO": unix.RLIMIT_RTPRIO,
25 "RLIMIT_RTTIME": unix.RLIMIT_RTTIME,
26 }
27
28 func strToRlimit(key string) (int, error) {
29 rl, ok := rlimitMap[key]
30 if !ok {
31 return 0, fmt.Errorf("wrong rlimit value: %s", key)
32 }
33 return rl, nil
34 }
35
View as plain text