MCPcopy Create free account
hub / github.com/linuxkit/linuxkit / cleanupTask

Function cleanupTask

pkg/init/cmd/service/system_init.go:26–58  ·  view source on GitHub ↗
(ctx context.Context, ctr client.Container)

Source from the content-addressed store, hash-verified

24)
25
26func cleanupTask(ctx context.Context, ctr client.Container) error {
27 task, err := ctr.Task(ctx, nil)
28 if err != nil {
29 if errdefs.IsNotFound(err) {
30 return nil
31 }
32 return errors.Wrap(err, "getting task")
33 }
34
35 deleteErr := make(chan error, 1)
36 deleteCtx, deleteCancel := context.WithCancel(ctx)
37 defer deleteCancel()
38
39 go func(ctx context.Context, ch chan error) {
40 _, err := task.Delete(ctx)
41 if err != nil {
42 ch <- errors.Wrap(err, "killing task")
43 }
44 ch <- nil
45 }(deleteCtx, deleteErr)
46
47 sig := syscall.SIGKILL
48 if err := task.Kill(ctx, sig); err != nil && !errdefs.IsNotFound(err) {
49 return errors.Wrapf(err, "killing task with %q", sig)
50 }
51
52 select {
53 case err := <-deleteErr:
54 return err
55 case <-ctx.Done():
56 return ctx.Err()
57 }
58}
59
60func systemInitCmd(ctx context.Context, args []string) {
61 invoked := filepath.Base(os.Args[0])

Callers 1

systemInitCmdFunction · 0.85

Calls 1

DeleteMethod · 0.80

Tested by

no test coverage detected