MCPcopy Index your code
hub / github.com/linuxkit/linuxkit / stop

Function stop

pkg/init/cmd/service/cmd.go:102–150  ·  view source on GitHub ↗
(ctx context.Context, service, sock, basePath string)

Source from the content-addressed store, hash-verified

100}
101
102func stop(ctx context.Context, service, sock, basePath string) (string, uint32, string, error) {
103 path := filepath.Join(basePath, service)
104
105 runtimeConfig := getRuntimeConfig(path)
106
107 cli, err := client.New(sock)
108 if err != nil {
109 return "", 0, "creating containerd client", err
110 }
111
112 if runtimeConfig.Namespace != "" {
113 ctx = namespaces.WithNamespace(ctx, runtimeConfig.Namespace)
114 }
115
116 ctr, err := cli.LoadContainer(ctx, service)
117 if err != nil {
118 return "", 0, "loading container", err
119 }
120
121 task, err := ctr.Task(ctx, nil)
122 if err != nil {
123 return "", 0, "fetching task", err
124 }
125
126 id := ctr.ID()
127 pid := task.Pid()
128
129 err = task.Kill(ctx, 9)
130 if err != nil {
131 return "", 0, "killing task", err
132 }
133
134 _, err = task.Wait(ctx)
135 if err != nil {
136 return "", 0, "waiting for task to exit", err
137 }
138
139 _, err = task.Delete(ctx)
140 if err != nil {
141 return "", 0, "deleting task", err
142 }
143
144 err = ctr.Delete(ctx)
145 if err != nil {
146 return "", 0, "deleting container", err
147 }
148
149 return id, pid, "", nil
150}
151
152func start(ctx context.Context, service, sock, basePath, dumpSpec string) (string, uint32, string, error) {
153 path := filepath.Join(basePath, service)

Callers 1

stopCmdFunction · 0.85

Calls 3

getRuntimeConfigFunction · 0.85
WaitMethod · 0.80
DeleteMethod · 0.80

Tested by

no test coverage detected