mkdirall on the PID file path

Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 745f3ece53cc037030c0618f75f2cd551baa1b6c
Component: engine
This commit is contained in:
John Howard
2016-10-25 09:11:20 -07:00
parent efd79c3c13
commit ccce8d9194
+7
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
}