| // +build !windows |
| |
| package daemon |
| |
| import ( |
| "os" |
| "path/filepath" |
| |
| "github.com/go-check/check" |
| "golang.org/x/sys/unix" |
| ) |
| |
| func cleanupExecRoot(c *check.C, execRoot string) { |
| // Cleanup network namespaces in the exec root of this |
| // daemon because this exec root is specific to this |
| // daemon instance and has no chance of getting |
| // cleaned up when a new daemon is instantiated with a |
| // new exec root. |
| netnsPath := filepath.Join(execRoot, "netns") |
| filepath.Walk(netnsPath, func(path string, info os.FileInfo, err error) error { |
| if err := unix.Unmount(path, unix.MNT_FORCE); err != nil { |
| c.Logf("unmount of %s failed: %v", path, err) |
| } |
| os.Remove(path) |
| return nil |
| }) |
| } |
| |
| // SignalDaemonDump sends a signal to the daemon to write a dump file |
| func SignalDaemonDump(pid int) { |
| unix.Kill(pid, unix.SIGQUIT) |
| } |
| |
| func signalDaemonReload(pid int) error { |
| return unix.Kill(pid, unix.SIGHUP) |
| } |