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  }