Files
linuxkit/alpine/packages/hupper/main.go
2016-01-22 11:58:38 +00:00

46 lines
880 B
Go

package main
import (
"flag"
"io/ioutil"
"log"
"os"
"strconv"
"syscall"
)
var (
path string
pidfile string
)
func init() {
flag.StringVar(&path, "path", "/Database/branch/master/watch/com.docker.driver.amd64-linux.node/etc.node/docker.node/daemon.json.node/tree.live", "path of the file to watch")
flag.StringVar(&pidfile, "pidfile", "/run/docker.pid", "pidfile for process to signal")
}
func main() {
log.SetFlags(0)
flag.Parse()
watch, err := os.Open(path)
if err != nil {
log.Fatalln("Failed to open file", path, err)
}
buf := make([]byte, 512)
for {
_, err := watch.Read(buf)
if err != nil {
log.Fatalln("Error reading watch file", err)
}
bytes, err := ioutil.ReadFile(pidfile)
pidstring := string(bytes[:])
if err != nil {
pid, err := strconv.Atoi(pidstring)
if err != nil {
syscall.Kill(pid, syscall.SIGHUP)
}
}
}
}