aboutsummaryrefslogtreecommitdiffstats
path: root/package/system/procd/files/service
diff options
context:
space:
mode:
Diffstat (limited to 'package/system/procd/files/service')
-rw-r--r--package/system/procd/files/service30
1 files changed, 30 insertions, 0 deletions
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 "$@"