MCPcopy Index your code
hub / github.com/containerd/containerd / Restart

Method Restart

integration/client/daemon.go:135–167  ·  view source on GitHub ↗
(stopCb func())

Source from the content-addressed store, hash-verified

133}
134
135func (d *daemon) Restart(stopCb func()) error {
136 d.Lock()
137 defer d.Unlock()
138 if d.cmd == nil {
139 return errors.New("daemon is not running")
140 }
141
142 signal := syscall.SIGTERM
143 if runtime.GOOS == "windows" {
144 signal = syscall.SIGKILL
145 }
146 var err error
147 if err = d.cmd.Process.Signal(signal); err != nil {
148 return fmt.Errorf("failed to signal daemon: %w", err)
149 }
150
151 d.cmd.Wait()
152
153 if stopCb != nil {
154 stopCb()
155 }
156
157 cmd := exec.Command(d.cmd.Path, d.cmd.Args[1:]...)
158 cmd.Stdout = d.cmd.Stdout
159 cmd.Stderr = d.cmd.Stderr
160 if err := cmd.Start(); err != nil {
161 cmd.Wait()
162 return fmt.Errorf("failed to start new daemon instance: %w", err)
163 }
164 d.cmd = cmd
165
166 return nil
167}

Calls 4

LockMethod · 0.65
UnlockMethod · 0.65
WaitMethod · 0.65
StartMethod · 0.65