[Buildroot] [RFC v2 3/6] dropbear: common service startup

Alex Suykov alex.suykov at gmail.com
Sun Apr 5 22:02:30 UTC 2015


Relatively complex case, with umask and autid dependency.

Signed-off-by: Alex Suykov <alex.suykov at gmail.com>
---
 package/dropbear/S50dropbear      | 43 ---------------------------------------
 package/dropbear/dropbear.mk      | 13 +-----------
 package/dropbear/dropbear.run     |  6 ++++++
 package/dropbear/dropbear.service | 10 ---------
 4 files changed, 7 insertions(+), 65 deletions(-)
 delete mode 100644 package/dropbear/S50dropbear
 create mode 100644 package/dropbear/dropbear.run
 delete mode 100644 package/dropbear/dropbear.service

diff --git a/package/dropbear/S50dropbear b/package/dropbear/S50dropbear
deleted file mode 100644
index 2694931..0000000
--- a/package/dropbear/S50dropbear
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh
-#
-# Starts dropbear sshd.
-#
-
-# Allow a few customizations from a config file
-test -r /etc/default/dropbear && . /etc/default/dropbear
-
-start() {
-	DROPBEAR_ARGS="$DROPBEAR_ARGS -R"
-
-	echo -n "Starting dropbear sshd: "
-	umask 077
-	start-stop-daemon -S -q -p /var/run/dropbear.pid \
-		--exec /usr/sbin/dropbear -- $DROPBEAR_ARGS
-	[ $? = 0 ] && echo "OK" || echo "FAIL"
-}
-stop() {
-	echo -n "Stopping dropbear sshd: "
-	start-stop-daemon -K -q -p /var/run/dropbear.pid
-	[ $? = 0 ] && echo "OK" || echo "FAIL"
-}
-restart() {
-	stop
-	start
-}
-
-case "$1" in
-  start)
-  	start
-	;;
-  stop)
-  	stop
-	;;
-  restart|reload)
-  	restart
-	;;
-  *)
-	echo "Usage: $0 {start|stop|restart}"
-	exit 1
-esac
-
-exit $?
diff --git a/package/dropbear/dropbear.mk b/package/dropbear/dropbear.mk
index bc65d69..fdd83f4 100644
--- a/package/dropbear/dropbear.mk
+++ b/package/dropbear/dropbear.mk
@@ -51,19 +51,8 @@ define DROPBEAR_DISABLE_STANDALONE
 	$(SED) 's:\(#define NON_INETD_MODE\):/*\1 */:' $(@D)/options.h
 endef
 
-define DROPBEAR_INSTALL_INIT_SYSTEMD
-	$(INSTALL) -D -m 644 package/dropbear/dropbear.service \
-		$(TARGET_DIR)/usr/lib/systemd/system/dropbear.service
-	mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
-	ln -fs ../../../../usr/lib/systemd/system/dropbear.service \
-		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/dropbear.service
-endef
-
 ifeq ($(BR2_USE_MMU),y)
-define DROPBEAR_INSTALL_INIT_SYSV
-	$(INSTALL) -D -m 755 package/dropbear/S50dropbear \
-		$(TARGET_DIR)/etc/init.d/S50dropbear
-endef
+DROPBEAR_INIT_RUN = dropbear.run
 else
 DROPBEAR_POST_EXTRACT_HOOKS += DROPBEAR_DISABLE_STANDALONE
 endif
diff --git a/package/dropbear/dropbear.run b/package/dropbear/dropbear.run
new file mode 100644
index 0000000..f50153d
--- /dev/null
+++ b/package/dropbear/dropbear.run
@@ -0,0 +1,6 @@
+description: Dropbear SSH daemon
+umask: 077
+pidfile: /var/run/dropbear.pid
+after: syslog network auditd
+background: /usr/sbin/dropbear -R
+foreground: /usr/sbin/dropbear -F -R
diff --git a/package/dropbear/dropbear.service b/package/dropbear/dropbear.service
deleted file mode 100644
index 4e6c879..0000000
--- a/package/dropbear/dropbear.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Dropbear SSH daemon
-After=syslog.target network.target auditd.service
-
-[Service]
-ExecStart=/usr/sbin/dropbear -F -R
-ExecReload=/bin/kill -HUP $MAINPID
-
-[Install]
-WantedBy=multi-user.target
-- 
2.0.3



More information about the buildroot mailing list