github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/cmd/podman/early_init_linux.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 "syscall" 7 8 "github.com/hanks177/podman/v4/libpod/define" 9 "github.com/pkg/errors" 10 ) 11 12 func setRLimits() error { 13 rlimits := new(syscall.Rlimit) 14 rlimits.Cur = define.RLimitDefaultValue 15 rlimits.Max = define.RLimitDefaultValue 16 if err := syscall.Setrlimit(syscall.RLIMIT_NOFILE, rlimits); err != nil { 17 if err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, rlimits); err != nil { 18 return errors.Wrapf(err, "error getting rlimits") 19 } 20 rlimits.Cur = rlimits.Max 21 if err := syscall.Setrlimit(syscall.RLIMIT_NOFILE, rlimits); err != nil { 22 return errors.Wrapf(err, "error setting new rlimits") 23 } 24 } 25 return nil 26 } 27 28 func setUMask() { 29 // Be sure we can create directories with 0755 mode. 30 syscall.Umask(0022) 31 } 32 33 func earlyInitHook() { 34 if err := setRLimits(); err != nil { 35 fmt.Fprintf(os.Stderr, "Failed to set rlimits: %s\n", err.Error()) 36 } 37 38 setUMask() 39 }