package main import "fmt" import "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 }