forked from opencontainers/runc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rlimit_linux.go
34 lines (30 loc) · 908 Bytes
/
rlimit_linux.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package main
import (
"fmt"
"golang.org/x/sys/unix"
)
var rlimitMap = map[string]int{
"RLIMIT_CPU": unix.RLIMIT_CPU,
"RLIMIT_FSIZE": unix.RLIMIT_FSIZE,
"RLIMIT_DATA": unix.RLIMIT_DATA,
"RLIMIT_STACK": unix.RLIMIT_STACK,
"RLIMIT_CORE": unix.RLIMIT_CORE,
"RLIMIT_RSS": unix.RLIMIT_RSS,
"RLIMIT_NPROC": unix.RLIMIT_NPROC,
"RLIMIT_NOFILE": unix.RLIMIT_NOFILE,
"RLIMIT_MEMLOCK": unix.RLIMIT_MEMLOCK,
"RLIMIT_AS": unix.RLIMIT_AS,
"RLIMIT_LOCKS": unix.RLIMIT_LOCKS,
"RLIMIT_SIGPENDING": unix.RLIMIT_SIGPENDING,
"RLIMIT_MSGQUEUE": unix.RLIMIT_MSGQUEUE,
"RLIMIT_NICE": unix.RLIMIT_NICE,
"RLIMIT_RTPRIO": unix.RLIMIT_RTPRIO,
"RLIMIT_RTTIME": unix.RLIMIT_RTTIME,
}
func strToRlimit(key string) (int, error) {
rl, ok := rlimitMap[key]
if !ok {
return 0, fmt.Errorf("wrong rlimit value: %s", key)
}
return rl, nil
}