diff mbox series

package/docker-engine: add sysv init script

Message ID 20190130222810.3927-1-peter@korsgaard.com
State Accepted
Commit 30f23f9980efa612aae5cecc3d4221b912248095
Headers show
Series package/docker-engine: add sysv init script | expand

Commit Message

Peter Korsgaard Jan. 30, 2019, 10:28 p.m. UTC
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 package/docker-engine/S60dockerd       | 38 ++++++++++++++++++++++++++++++++++
 package/docker-engine/docker-engine.mk |  5 +++++
 2 files changed, 43 insertions(+)
 create mode 100755 package/docker-engine/S60dockerd

Comments

Christian Stewart Jan. 31, 2019, 3:11 a.m. UTC | #1
Hi Peter,

Peter Korsgaard <peter@korsgaard.com> writes:

> +++ b/package/docker-engine/S60dockerd
> @@ -0,0 +1,38 @@
> +#!/bin/sh
> +
> +NAME=dockerd
> +DAEMON=/usr/bin/$NAME
> +PIDFILE=/var/run/$NAME.pid
> +DAEMON_ARGS=""

We pull the systemd unit file from /contrib/init/systemd/docker.service
within the docker-engine codebase.

There also exists /contrib/init/openrc as well as sysvinit-debian,
sysvinit-redhat, and upstart. I guess none of these are suitable for the
sysv init system.

> +define DOCKER_ENGINE_INSTALL_INIT_SYSV
> +	$(INSTALL) -D -m 755 package/docker-engine/S60dockerd \
> +		$(TARGET_DIR)/etc/init.d/S60dockerd
> +endef

In general LGTM.

Acked-by: Christian Stewart <christian@paral.in>

Best,
Christian
Peter Korsgaard Jan. 31, 2019, 7:32 a.m. UTC | #2
>>>>> "Christian" == Christian Stewart <christian@paral.in> writes:

 > Hi Peter,
 > Peter Korsgaard <peter@korsgaard.com> writes:

 >> +++ b/package/docker-engine/S60dockerd
 >> @@ -0,0 +1,38 @@
 >> +#!/bin/sh
 >> +
 >> +NAME=dockerd
 >> +DAEMON=/usr/bin/$NAME
 >> +PIDFILE=/var/run/$NAME.pid
 >> +DAEMON_ARGS=""

 > We pull the systemd unit file from /contrib/init/systemd/docker.service
 > within the docker-engine codebase.

 > There also exists /contrib/init/openrc as well as sysvinit-debian,
 > sysvinit-redhat, and upstart. I guess none of these are suitable for the
 > sysv init system.

Yes, but those all look very complicated and/or does more than we want,
E.G. handling the croupfs mounts which we do in S30cgroupfs.


 >> +define DOCKER_ENGINE_INSTALL_INIT_SYSV
 >> +	$(INSTALL) -D -m 755 package/docker-engine/S60dockerd \
 >> +		$(TARGET_DIR)/etc/init.d/S60dockerd
 >> +endef

 > In general LGTM.

 > Acked-by: Christian Stewart <christian@paral.in>

Thanks.

Committed, thanks.
diff mbox series

Patch

diff --git a/package/docker-engine/S60dockerd b/package/docker-engine/S60dockerd
new file mode 100755
index 0000000000..def8bea149
--- /dev/null
+++ b/package/docker-engine/S60dockerd
@@ -0,0 +1,38 @@ 
+#!/bin/sh
+
+NAME=dockerd
+DAEMON=/usr/bin/$NAME
+PIDFILE=/var/run/$NAME.pid
+DAEMON_ARGS=""
+
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME $1
+
+do_start() {
+        echo -n "Starting $NAME: "
+        start-stop-daemon --start --quiet --background --make-pidfile \
+		--pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS \
+                && echo "OK" || echo "FAIL"
+}
+
+do_stop() {
+        echo -n "Stopping $NAME: "
+        start-stop-daemon --stop --quiet --pidfile $PIDFILE \
+                && echo "OK" || echo "FAIL"
+}
+
+case "$1" in
+        start)
+                do_start
+                ;;
+        stop)
+                do_stop
+                ;;
+        restart)
+                do_stop
+                sleep 1
+                do_start
+                ;;
+	*)
+                echo "Usage: $0 {start|stop|restart}"
+                exit 1
+esac
diff --git a/package/docker-engine/docker-engine.mk b/package/docker-engine/docker-engine.mk
index f19c1d995c..aae44ab6df 100644
--- a/package/docker-engine/docker-engine.mk
+++ b/package/docker-engine/docker-engine.mk
@@ -73,6 +73,11 @@  define DOCKER_ENGINE_INSTALL_INIT_SYSTEMD
 		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/docker.service
 endef
 
+define DOCKER_ENGINE_INSTALL_INIT_SYSV
+	$(INSTALL) -D -m 755 package/docker-engine/S60dockerd \
+		$(TARGET_DIR)/etc/init.d/S60dockerd
+endef
+
 define DOCKER_ENGINE_USERS
 	- - docker -1 * - - - Docker Application Container Framework
 endef