package libcontainerd import ( "fmt" "os" "strconv" "github.com/Sirupsen/logrus" "github.com/opencontainers/runc/libcontainer/system" ) func setOOMScore(pid, score int) error { oomScoreAdjPath := fmt.Sprintf("/proc/%d/oom_score_adj", pid) f, err := os.OpenFile(oomScoreAdjPath, os.O_WRONLY, 0) if err != nil { return err } stringScore := strconv.Itoa(score) _, err = f.WriteString(stringScore) f.Close() if os.IsPermission(err) { // Setting oom_score_adj does not work in an // unprivileged container. Ignore the error, but log // it if we appear not to be in that situation. if !system.RunningInUserNS() { logrus.Debugf("Permission denied writing %q to %s", stringScore, oomScoreAdjPath) } return nil } return err }