diff options
author | Giuseppe Scrivano <gscrivan@redhat.com> | 2021-09-16 12:44:45 +0200 |
---|---|---|
committer | Giuseppe Scrivano <gscrivan@redhat.com> | 2021-09-16 20:17:39 +0200 |
commit | 72534a74b3c2ff35ae1711a890406a6bce5fa44f (patch) | |
tree | 84e43ac76d20dc17488f1a8b2edebfac59055d84 /utils/utils.go | |
parent | 9c1e27fdd536f6026efe3da4360755a3e9135ca8 (diff) | |
download | podman-72534a74b3c2ff35ae1711a890406a6bce5fa44f.tar.gz podman-72534a74b3c2ff35ae1711a890406a6bce5fa44f.tar.bz2 podman-72534a74b3c2ff35ae1711a890406a6bce5fa44f.zip |
system: move MovePauseProcessToScope to utils
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Diffstat (limited to 'utils/utils.go')
-rw-r--r-- | utils/utils.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/utils/utils.go b/utils/utils.go index e2760d225..185ac4865 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -172,3 +172,28 @@ func RunsOnSystemd() bool { }) return runsOnSystemd } + +func moveProcessToScope(pidPath, slice, scope string) error { + data, err := ioutil.ReadFile(pidPath) + if err != nil { + return errors.Wrapf(err, "cannot read pid file %s", pidPath) + } + pid, err := strconv.ParseUint(string(data), 10, 0) + if err != nil { + return errors.Wrapf(err, "cannot parse pid file %s", pidPath) + } + return RunUnderSystemdScope(int(pid), slice, scope) +} + +// MovePauseProcessToScope moves the pause process used for rootless mode to keep the namespaces alive to +// a separate scope. +func MovePauseProcessToScope(pausePidPath string) { + err := moveProcessToScope(pausePidPath, "user.slice", "podman-pause.scope") + if err != nil { + if RunsOnSystemd() { + logrus.Warnf("Failed to add pause process to systemd sandbox cgroup: %v", err) + } else { + logrus.Debugf("Failed to add pause process to systemd sandbox cgroup: %v", err) + } + } +} |