openwrt/package/system/procd/files/service
Florian Eckert b9017384ca 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@dev.tdt.de>
2022-03-19 16:13:58 +01:00

31 lines
723 B
Bash

#!/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 "$@"