[openwrt/openwrt] procd: move service command to procd

LEDE Commits lede-commits at lists.infradead.org
Sat Mar 19 09:30:45 PDT 2022


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/b9017384cae7bbc47186fdf35a80207844876a0d

commit b9017384cae7bbc47186fdf35a80207844876a0d
Author: Florian Eckert <fe at dev.tdt.de>
AuthorDate: Tue Nov 30 16:01:14 2021 +0100

    procd: move service command to procd
    
    The service command belongs to the procd and does not belong in the
    shinit. In the course of the move, the script was also checked with
    shellcheck and cleaned up.
    
    Signed-off-by: Florian Eckert <fe at dev.tdt.de>
---
 package/base-files/files/etc/shinit | 21 ---------------------
 package/system/procd/Makefile       |  1 +
 package/system/procd/files/service  | 30 ++++++++++++++++++++++++++++++
 3 files changed, 31 insertions(+), 21 deletions(-)

diff --git a/package/base-files/files/etc/shinit b/package/base-files/files/etc/shinit
index 6b682d8769..8df9771e65 100644
--- a/package/base-files/files/etc/shinit
+++ b/package/base-files/files/etc/shinit
@@ -8,26 +8,5 @@ alias ll='ls -alF --color=auto'
 [ -x /usr/bin/arp -o -x /sbin/arp ] || arp() { cat /proc/net/arp; }
 [ -x /usr/bin/ldd ] || ldd() { LD_TRACE_LOADED_OBJECTS=1 $*; }
 
-service() {
-	if [ -f "/etc/init.d/$1" ]; then
-		/etc/init.d/$@
-	else
-		echo "Usage: service <service> [command]"
-		if [ -n "$1" ]; then
-			echo "Service "'"'"$1"'"'" not found, the following services are available:"
-		else
-			echo "The following services are available:"
-		fi
-		for F in /etc/init.d/* ; do
-			printf "%-30s\t%10s\t%10s\n"  "$F" \
-			$( $($F enabled) && echo "enabled" || echo "disabled" ) \
-			$( [ "$(ubus call service list "{ 'verbose': true, 'name': '$(basename $F)' }" \
-			| jsonfilter -q -e "@['$(basename $F)'].instances[*].running" | uniq)" = "true" ] \
-			&& echo "running" || echo "stopped" )
-		done;
-		return 1
-	fi
-}
-
 [ -n "$KSH_VERSION" -o \! -s "$HOME/.shinit" ] || . "$HOME/.shinit"
 [ -z "$KSH_VERSION" -o \! -s "$HOME/.mkshrc" ] || . "$HOME/.mkshrc"
diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile
index 958a4808cb..1d27920539 100644
--- a/package/system/procd/Makefile
+++ b/package/system/procd/Makefile
@@ -121,6 +121,7 @@ define Package/procd/install
 	$(INSTALL_BIN) ./files/reload_config $(1)/sbin/
 	$(INSTALL_CONF) ./files/hotplug*.json $(1)/etc/
 	$(INSTALL_DATA) ./files/procd.sh $(1)/lib/functions/
+	$(INSTALL_BIN) ./files/service $(1)/sbin/service
 endef
 
 Package/procd-selinux/install = $(Package/procd/install)
diff --git a/package/system/procd/files/service b/package/system/procd/files/service
new file mode 100644
index 0000000000..1ceacfe5ad
--- /dev/null
+++ b/package/system/procd/files/service
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+main() {
+	local service="$1"
+	local cmd="$2"
+
+	local boot status
+
+	if [ -f "/etc/init.d/${service}" ]; then
+		/etc/init.d/"${service}" "${cmd}"
+		exit "$?"
+	fi
+
+	if [ -n "$service" ]; then
+		echo "Service \"$1\" not found:"
+		exit 1
+	fi
+
+	echo "Usage: $(basename "$0") <service> [command]"
+	for service in /etc/init.d/* ; do
+		boot="$($service enabled && echo "enabled" || echo "disabled" )"
+		status="$( [ "$(ubus call service list "{ 'verbose': true, 'name': '$(basename "$service")' }" \
+			| jsonfilter -q -e "@['$(basename "$service")'].instances[*].running" | uniq)" = "true" ] \
+			&& echo "running" || echo "stopped" )"
+
+		printf "%-30s\\t%10s\\t%10s\\n"  "$service" "$boot" "$status"
+	done
+}
+
+main "$@"




More information about the lede-commits mailing list