mkdirall on the PID file path

Signed-off-by: John Howard <jhoward@microsoft.com>
This commit is contained in:
John Howard 2016-10-24 10:21:25 -07:00
parent 96efb2cf25
commit 745f3ece53
1 changed files with 7 additions and 0 deletions

View File

@ -7,8 +7,11 @@ import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"strconv"
"strings"
"github.com/docker/docker/pkg/system"
)
// PIDFile is a file used to store the process ID of a running process.
@ -33,6 +36,10 @@ func New(path string) (*PIDFile, error) {
if err := checkPIDFileAlreadyExists(path); err != nil {
return nil, err
}
// Note MkdirAll returns nil if a directory already exists
if err := system.MkdirAll(filepath.Dir(path), os.FileMode(0755)); err != nil {
return nil, err
}
if err := ioutil.WriteFile(path, []byte(fmt.Sprintf("%d", os.Getpid())), 0644); err != nil {
return nil, err
}