aboutsummaryrefslogtreecommitdiff
path: root/package/system/procd/files/service
blob: 1ceacfe5add6c5054303715ebd4c0b5e6c72af1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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 "$@"