Files
docker-cli/components/engine/utils/daemon.go
Solomon Hykes ae44c03557 Setup daemon pidfile/cleanup in Server.Daemon() instead of main()
Upstream-commit: c1ae1a0e1cfae1aed681add5b1cb1c39e2c0e929
Component: engine
2013-10-26 14:26:07 -07:00

37 lines
701 B
Go

package utils
import (
"os"
"fmt"
"io/ioutil"
"log"
"strconv"
)
func CreatePidFile(pidfile string) error {
if pidString, err := ioutil.ReadFile(pidfile); err == nil {
pid, err := strconv.Atoi(string(pidString))
if err == nil {
if _, err := os.Stat(fmt.Sprintf("/proc/%d/", pid)); err == nil {
return fmt.Errorf("pid file found, ensure docker is not running or delete %s", pidfile)
}
}
}
file, err := os.Create(pidfile)
if err != nil {
return err
}
defer file.Close()
_, err = fmt.Fprintf(file, "%d", os.Getpid())
return err
}
func RemovePidFile(pidfile string) {
if err := os.Remove(pidfile); err != nil {
log.Printf("Error removing %s: %s", pidfile, err)
}
}