cmd/fshim/ipc: install signal handler on shim start
All checks were successful
test / test (push) Successful in 20s
All checks were successful
test / test (push) Successful in 20s
Getting killed at this point will result in inconsistent state. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user