summaryrefslogtreecommitdiff
path: root/pkg/libcontainer/nsinit/state.go
blob: af38008c031430d7aee880f10d5c15b39bfe72d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package nsinit

import (
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
)

// StateWriter handles writing and deleting the pid file
// on disk
type StateWriter interface {
	WritePid(pid int) error
	DeletePid() error
}

type DefaultStateWriter struct {
	Root string
}

// writePidFile writes the namespaced processes pid to pid in the rootfs for the container
func (d *DefaultStateWriter) WritePid(pid int) error {
	return ioutil.WriteFile(filepath.Join(d.Root, "pid"), []byte(fmt.Sprint(pid)), 0655)
}

func (d *DefaultStateWriter) DeletePid() error {
	return os.Remove(filepath.Join(d.Root, "pid"))
}