Kill on second SIGTERM

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
Nicolas De Loof 2021-03-22 16:43:07 +01:00
parent 9af5ea4b6a
commit a942ef4a81
No known key found for this signature in database
GPG Key ID: 9858809D6F8F6E7E
1 changed files with 8 additions and 3 deletions

View File

@ -274,21 +274,26 @@ func runCreateStart(ctx context.Context, opts upOptions, services []string) erro
queue: queue,
}
signalChan := make(chan os.Signal, 1)
signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)
stopFunc := func() error {
ctx := context.Background()
_, err := progress.Run(ctx, func(ctx context.Context) (string, error) {
go func() {
<-signalChan
c.ComposeService().Kill(ctx, project, compose.KillOptions{}) // nolint:errcheck
}()
return "", c.ComposeService().Stop(ctx, project, compose.StopOptions{})
})
return err
}
signalChan := make(chan os.Signal, 1)
signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)
go func() {
<-signalChan
queue <- compose.ContainerEvent{
Type: compose.UserCancel,
}
fmt.Println("Gracefully stopping...")
fmt.Println("Gracefully stopping... (press Ctrl+C again to force)")
stopFunc() // nolint:errcheck
}()