changeset 554:e135d70987c1

core/busybox: add some services, closes #1663
author David Demelier <markand@malikania.fr>
date Thu, 04 Jul 2019 20:17:00 +0200
parents 09c120c271be
children e51af292bfd9
files core/busybox/busybox.crond core/busybox/busybox.klogd core/busybox/busybox.mdev core/busybox/busybox.sh core/busybox/busybox.syslogd
diffstat 5 files changed, 247 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/busybox/busybox.crond	Thu Jul 04 20:17:00 2019 +0200
@@ -0,0 +1,60 @@
+#!/bin/sh
+#
+# /etc/rc.d/busybox.crond: run control script for busybox.crond
+
+if [ -f /etc/rc.conf ]; then
+	. /etc/rc.conf
+fi
+
+: ${BUSYBOX_CROND_CMD:=/bin/busybox}
+: ${BUSYBOX_CROND_ARGS:=}
+: ${BUSYBOX_CROND_PID:=/var/run/crond.pid}
+
+busybox_crond_start()
+{
+	echo "Starting busybox crond: $BUSYBOX_CROND_CMD crond $BUSYBOX_CROND_ARGS"
+	$BUSYBOX_CROND_CMD crond $BUSYBOX_CROND_ARGS
+}
+
+busybox_crond_status()
+{
+	if [ -s $BUSYBOX_CROND_PID ]; then
+		echo "busybox crond is running with pid: `cat $BUSYBOX_CROND_PID`"
+	else
+		echo "busybox crond is not running"
+	fi
+}
+
+busybox_crond_stop()
+{
+	if [ -s $BUSYBOX_CROND_PID ]; then
+		echo "Stopping busybox crond."
+		kill -QUIT `cat $BUSYBOX_CROND_PID`
+		rm -f $BUSYBOX_CROND_PID
+	fi
+}
+
+busybox_crond_restart()
+{
+	busybox_crond_stop
+	sleep 3
+	busybox_crond_start
+}
+
+case $1 in
+start)
+	busybox_crond_start
+	;;
+status)
+	busybox_crond_status
+	;;
+stop)
+	busybox_crond_stop
+	;;
+restart)
+	busybox_crond_restart
+	;;
+*)
+	echo "usage: $(basename $0) restart|start|status|stop"
+	;;
+esac
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/busybox/busybox.klogd	Thu Jul 04 20:17:00 2019 +0200
@@ -0,0 +1,60 @@
+#!/bin/sh
+#
+# /etc/rc.d/busybox.klogd: run control script for busybox.klogd
+
+if [ -f /etc/rc.conf ]; then
+	. /etc/rc.conf
+fi
+
+: ${BUSYBOX_KLOGD_CMD:=/bin/busybox}
+: ${BUSYBOX_KLOGD_ARGS:=}
+: ${BUSYBOX_KLOGD_PID:=/var/run/klogd.pid}
+
+busybox_klogd_start()
+{
+	echo "Starting busybox klogd: $BUSYBOX_KLOGD_CMD klogd $BUSYBOX_KLOGD_ARGS"
+	$BUSYBOX_KLOGD_CMD klogd $BUSYBOX_KLOGD_ARGS
+}
+
+busybox_klogd_status()
+{
+	if [ -s $BUSYBOX_KLOGD_PID ]; then
+		echo "busybox klogd is running with pid: `cat $BUSYBOX_KLOGD_PID`"
+	else
+		echo "busybox klogd is not running"
+	fi
+}
+
+busybox_klogd_stop()
+{
+	if [ -s $BUSYBOX_KLOGD_PID ]; then
+		echo "Stopping busybox klogd."
+		kill -QUIT `cat $BUSYBOX_KLOGD_PID`
+		rm -f $BUSYBOX_KLOGD_PID
+	fi
+}
+
+busybox_klogd_restart()
+{
+	busybox_klogd_stop
+	sleep 3
+	busybox_klogd_start
+}
+
+case $1 in
+start)
+	busybox_klogd_start
+	;;
+status)
+	busybox_klogd_status
+	;;
+stop)
+	busybox_klogd_stop
+	;;
+restart)
+	busybox_klogd_restart
+	;;
+*)
+	echo "usage: $(basename $0) restart|start|status|stop"
+	;;
+esac
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/busybox/busybox.mdev	Thu Jul 04 20:17:00 2019 +0200
@@ -0,0 +1,62 @@
+#!/bin/sh
+#
+# /etc/rc.d/busybox.mdev: run control script for busybox.mdev
+#
+# This service is started at early boot stage if the script is marked as
+# executable. There is no need to specify it in SERVICES through the rc.conf
+# file.
+#
+
+if [ -f /etc/rc.conf ]; then
+	. /etc/rc.conf
+fi
+
+: ${BUSYBOX_MDEV_CMD:=/bin/busybox}
+: ${BUSYBOX_MDEV_ARGS:=-s}
+
+busybox_mdev_start()
+{
+	echo "Starting busybox mdev: $BUSYBOX_MDEV_CMD mdev $BUSYBOX_MDEV_ARGS"
+	echo "busybox mdev" > /proc/sys/kernel/hotplug
+	$BUSYBOX_MDEV_CMD mdev $BUSYBOX_MDEV_ARGS
+}
+
+busybox_mdev_status()
+{
+	if grep -q mdev /proc/sys/kernel/hotplug > /dev/null 2>&1; then
+		echo "busybox mdev is enabled"
+	else
+		echo "busybox mdev is not running"
+	fi
+}
+
+busybox_mdev_stop()
+{
+	echo "Stopping busybox mdev."
+	echo "" > /proc/sys/kernel/hotplug
+}
+
+busybox_mdev_restart()
+{
+	busybox_mdev_stop
+	sleep 3
+	busybox_mdev_start
+}
+
+case $1 in
+start)
+	busybox_mdev_start
+	;;
+status)
+	busybox_mdev_status
+	;;
+stop)
+	busybox_mdev_stop
+	;;
+restart)
+	busybox_mdev_restart
+	;;
+*)
+	echo "usage: $(basename $0) restart|start|status|stop"
+	;;
+esac
--- a/core/busybox/busybox.sh	Tue Jul 02 12:45:16 2019 +0200
+++ b/core/busybox/busybox.sh	Thu Jul 04 20:17:00 2019 +0200
@@ -34,7 +34,11 @@
 
 	cp ../config .config
 	make CC="$CC" HOSTCC="$CC" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"
-	install -D -m 0755 busybox $DESTDIR/bin/busybox
+	install -Dm0755 busybox $DESTDIR/bin/busybox
+	install -Dm0644 ../busybox.crond $DESTDIR/etc/rc.d/busybox.crond
+	install -Dm0644 ../busybox.klogd $DESTDIR/etc/rc.d/busybox.klogd
+	install -Dm0644 ../busybox.mdev $DESTDIR/etc/rc.d/busybox.mdev
+	install -Dm0644 ../busybox.syslogd $DESTDIR/etc/rc.d/busybox.syslogd
 
 	popd
 	rm -rf $PKGNAME-$PKGVERSION
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/busybox/busybox.syslogd	Thu Jul 04 20:17:00 2019 +0200
@@ -0,0 +1,60 @@
+#!/bin/sh
+#
+# /etc/rc.d/busybox.syslogd: run control script for busybox.syslogd
+
+if [ -f /etc/rc.conf ]; then
+	. /etc/rc.conf
+fi
+
+: ${BUSYBOX_SYSLOGD_CMD:=/bin/busybox}
+: ${BUSYBOX_SYSLOGD_ARGS:=}
+: ${BUSYBOX_SYSLOGD_PID:=/var/run/syslogd.pid}
+
+busybox_syslogd_start()
+{
+	echo "Starting busybox syslogd: $BUSYBOX_SYSLOGD_CMD syslogd $BUSYBOX_SYSLOGD_ARGS"
+	$BUSYBOX_SYSLOGD_CMD syslogd $BUSYBOX_SYSLOGD_ARGS
+}
+
+busybox_syslogd_status()
+{
+	if [ -s $BUSYBOX_SYSLOGD_PID ]; then
+		echo "busybox syslogd is running with pid: `cat $BUSYBOX_SYSLOGD_PID`"
+	else
+		echo "busybox syslogd is not running"
+	fi
+}
+
+busybox_syslogd_stop()
+{
+	if [ -s $BUSYBOX_SYSLOGD_PID ]; then
+		echo "Stopping busybox syslogd."
+		kill -QUIT `cat $BUSYBOX_SYSLOGD_PID`
+		rm -f $BUSYBOX_SYSLOGD_PID
+	fi
+}
+
+busybox_syslogd_restart()
+{
+	busybox_syslogd_stop
+	sleep 3
+	busybox_syslogd_start
+}
+
+case $1 in
+start)
+	busybox_syslogd_start
+	;;
+status)
+	busybox_syslogd_status
+	;;
+stop)
+	busybox_syslogd_stop
+	;;
+restart)
+	busybox_syslogd_restart
+	;;
+*)
+	echo "usage: $(basename $0) restart|start|status|stop"
+	;;
+esac