diff options
author | Giuseppe Scrivano <gscrivan@redhat.com> | 2021-09-16 12:14:02 +0200 |
---|---|---|
committer | Giuseppe Scrivano <gscrivan@redhat.com> | 2021-09-16 20:17:39 +0200 |
commit | 9c1e27fdd536f6026efe3da4360755a3e9135ca8 (patch) | |
tree | dd951a7c124658fe914cd511b639c0d82854e324 /utils | |
parent | fa9728c5509f1ef3bb1c80055e89b910d9740efd (diff) | |
download | podman-9c1e27fdd536f6026efe3da4360755a3e9135ca8.tar.gz podman-9c1e27fdd536f6026efe3da4360755a3e9135ca8.tar.bz2 podman-9c1e27fdd536f6026efe3da4360755a3e9135ca8.zip |
system: always move pause process when running on systemd
when running on a systemd with systemd, always try to move the pause
process to its own scope.
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Diffstat (limited to 'utils')
-rw-r--r-- | utils/utils.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/utils/utils.go b/utils/utils.go index 2e415130e..e2760d225 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -4,10 +4,12 @@ import ( "bytes" "fmt" "io" + "io/ioutil" "os" "os/exec" "strconv" "strings" + "sync" "github.com/containers/podman/v3/libpod/define" "github.com/containers/storage/pkg/archive" @@ -155,3 +157,18 @@ func RemoveScientificNotationFromFloat(x float64) (float64, error) { } return result, nil } + +var ( + runsOnSystemdOnce sync.Once + runsOnSystemd bool +) + +// RunsOnSystemd returns whether the system is using systemd +func RunsOnSystemd() bool { + runsOnSystemdOnce.Do(func() { + initCommand, err := ioutil.ReadFile("/proc/1/comm") + // On errors, default to systemd + runsOnSystemd = err != nil || strings.TrimRight(string(initCommand), "\n") == "systemd" + }) + return runsOnSystemd +} |