diff options
Diffstat (limited to 'package/system/procd/files/service')
-rw-r--r-- | package/system/procd/files/service | 30 |
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 "$@" |