ctr: update WritePidFile to use atomicfile

Signed-off-by: Samuel Karp <samuelkarp@google.com>
This commit is contained in:
Samuel Karp 2023-05-31 23:23:09 -07:00
parent c409c631ca
commit ab53652228
No known key found for this signature in database
GPG Key ID: 997C5A3CD3167CB5

View File

@ -24,6 +24,8 @@ import (
"strings"
"github.com/containerd/containerd/defaults"
"github.com/containerd/containerd/pkg/atomicfile"
"github.com/urfave/cli"
)
@ -272,15 +274,14 @@ func WritePidFile(path string, pid int) error {
if err != nil {
return err
}
tempPath := filepath.Join(filepath.Dir(path), fmt.Sprintf(".%s", filepath.Base(path)))
f, err := os.OpenFile(tempPath, os.O_RDWR|os.O_CREATE|os.O_EXCL|os.O_SYNC, 0666)
f, err := atomicfile.New(path, 0o666)
if err != nil {
return err
}
_, err = fmt.Fprintf(f, "%d", pid)
f.Close()
if err != nil {
f.Cancel()
return err
}
return os.Rename(tempPath, path)
return f.Close()
}