mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	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>
		
			
				
	
	
		
			31 lines
		
	
	
		
			723 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			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 "$@"
 |