github.com/hazelops/ize@v1.1.12-0.20230915191306-97d7c0e48f11/internal/docker/utils/signal_handlers.go (about) 1 package utils 2 3 import ( 4 "context" 5 "os" 6 "os/signal" 7 "strconv" 8 "syscall" 9 10 "github.com/docker/docker/client" 11 "github.com/sirupsen/logrus" 12 ) 13 14 func SetupSignalHandlers(cli *client.Client, containerID string) { 15 signalChannel := make(chan os.Signal, 1) 16 signal.Notify(signalChannel, os.Interrupt) 17 18 go func() { 19 for { 20 select { 21 case s := <-signalChannel: 22 logrus.Debug("Received signal:", s) 23 24 cli.ContainerKill(context.Background(), containerID, strconv.Itoa(int(s.(syscall.Signal)))) 25 } 26 } 27 }() 28 }