aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/base-files/files/etc/shinit21
-rw-r--r--package/system/procd/Makefile1
-rw-r--r--package/system/procd/files/service30
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 "$@"