Browse Source

sysutils/docker-engine: Copy more implementations from Linux (utils was modified to remove Pdeathsig which is Linux only)

master
Bernhard Fröhlich 2 months ago
parent
commit
2ee206d1bc
Signed by: Bernhard Froehlich <decke@bluelife.at> GPG Key ID: 4DD88C3F9F3B8333

+ 72
- 0
sysutils/docker-engine/files/patch-libcontainerd_supervisor_remote__daemon__freebsd.go View File

@@ -0,0 +1,72 @@
--- libcontainerd/supervisor/remote_daemon_freebsd.go.orig 2019-06-24 18:36:48 UTC
+++ libcontainerd/supervisor/remote_daemon_freebsd.go
@@ -0,0 +1,69 @@
+package supervisor // import "github.com/docker/docker/libcontainerd/supervisor"
+
+import (
+ "os"
+ "path/filepath"
+ "syscall"
+ "time"
+
+ "github.com/containerd/containerd/defaults"
+ "github.com/docker/docker/pkg/system"
+)
+
+const (
+ sockFile = "containerd.sock"
+ debugSockFile = "containerd-debug.sock"
+)
+
+func (r *remote) setDefaults() {
+ if r.GRPC.Address == "" {
+ r.GRPC.Address = filepath.Join(r.stateDir, sockFile)
+ }
+ if r.GRPC.MaxRecvMsgSize == 0 {
+ r.GRPC.MaxRecvMsgSize = defaults.DefaultMaxRecvMsgSize
+ }
+ if r.GRPC.MaxSendMsgSize == 0 {
+ r.GRPC.MaxSendMsgSize = defaults.DefaultMaxSendMsgSize
+ }
+ if r.Debug.Address == "" {
+ r.Debug.Address = filepath.Join(r.stateDir, debugSockFile)
+ }
+ if r.OOMScore == 0 {
+ r.OOMScore = -999
+ }
+
+ for key, conf := range r.pluginConfs.Plugins {
+ if conf == nil {
+ r.DisabledPlugins = append(r.DisabledPlugins, key)
+ delete(r.pluginConfs.Plugins, key)
+ }
+ }
+}
+
+func (r *remote) stopDaemon() {
+ // Ask the daemon to quit
+ syscall.Kill(r.daemonPid, syscall.SIGTERM)
+ // Wait up to 15secs for it to stop
+ for i := time.Duration(0); i < shutdownTimeout; i += time.Second {
+ if !system.IsProcessAlive(r.daemonPid) {
+ break
+ }
+ time.Sleep(time.Second)
+ }
+
+ if system.IsProcessAlive(r.daemonPid) {
+ r.logger.WithField("pid", r.daemonPid).Warn("daemon didn't stop within 15 secs, killing it")
+ syscall.Kill(r.daemonPid, syscall.SIGKILL)
+ }
+}
+
+func (r *remote) killDaemon() {
+ // Try to get a stack trace
+ syscall.Kill(r.daemonPid, syscall.SIGUSR1)
+ <-time.After(100 * time.Millisecond)
+ system.KillProcess(r.daemonPid)
+}
+
+func (r *remote) platformCleanup() {
+ os.Remove(filepath.Join(r.stateDir, sockFile))
+}

+ 14
- 0
sysutils/docker-engine/files/patch-libcontainerd_supervisor_utils__freebsd.go View File

@@ -0,0 +1,14 @@
--- libcontainerd/supervisor/utils_freebsd.go.orig 2019-06-24 18:38:41 UTC
+++ libcontainerd/supervisor/utils_freebsd.go
@@ -0,0 +1,11 @@
+package supervisor // import "github.com/docker/docker/libcontainerd/supervisor"
+
+import "syscall"
+
+// containerdSysProcAttr returns the SysProcAttr to use when exec'ing
+// containerd
+func containerdSysProcAttr() *syscall.SysProcAttr {
+ return &syscall.SysProcAttr{
+ Setsid: true,
+ }
+}

Loading…
Cancel
Save