浏览代码

send out a cancel event on SIGINT/SIGTERM

Signed-off-by: vyneer <[email protected]>
vyneer 1 年之前
父节点
当前提交
1f148244af
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      pkg/compose/up.go

+ 2 - 2
pkg/compose/up.go

@@ -64,6 +64,7 @@ func (s *composeService) Up(ctx context.Context, project *types.Project, options
 	signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)
 	defer close(signalChan)
 	var isTerminated bool
+	printer := newLogPrinter(options.Start.Attach)
 
 	doneCh := make(chan bool)
 	eg.Go(func() error {
@@ -74,6 +75,7 @@ func (s *composeService) Up(ctx context.Context, project *types.Project, options
 				return nil
 			case <-signalChan:
 				if first {
+					printer.Cancel()
 					fmt.Fprintln(s.stdinfo(), "Gracefully stopping... (press Ctrl+C again to force)")
 					eg.Go(func() error {
 						err := s.Stop(context.Background(), project.Name, api.StopOptions{
@@ -98,8 +100,6 @@ func (s *composeService) Up(ctx context.Context, project *types.Project, options
 		}
 	})
 
-	printer := newLogPrinter(options.Start.Attach)
-
 	var exitCode int
 	eg.Go(func() error {
 		code, err := printer.Run(options.Start.CascadeStop, options.Start.ExitCodeFrom, func() error {