diff options
Diffstat (limited to 'cmd/fshim')
| -rw-r--r-- | cmd/fshim/ipc/shim/shim.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/cmd/fshim/ipc/shim/shim.go b/cmd/fshim/ipc/shim/shim.go index a03b6003..db4a9b09 100644 --- a/cmd/fshim/ipc/shim/shim.go +++ b/cmd/fshim/ipc/shim/shim.go @@ -5,6 +5,7 @@ import ( "net" "os" "os/exec" + "os/signal" "strings" "sync" "sync/atomic" @@ -128,6 +129,16 @@ func (s *Shim) Start() (*time.Time, error) { } defer func() { killShim() }() + // take alternative exit path on signal + sig := make(chan os.Signal, 2) + signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM) + go func() { + v := <-sig + fmsg.Printf("got %s after program start", v) + s.killFallback <- nil + signal.Ignore(syscall.SIGINT, syscall.SIGTERM) + }() + accept() var conn *net.UnixConn select { |
