service 716 B

123456789101112131415161718192021222324252627282930
  1. #!/bin/sh
  2. main() {
  3. local service="$1"
  4. shift
  5. local boot status
  6. if [ -f "/etc/init.d/${service}" ]; then
  7. /etc/init.d/"${service}" "$@"
  8. exit "$?"
  9. fi
  10. if [ -n "$service" ]; then
  11. echo "Service \"$service\" not found:"
  12. exit 1
  13. fi
  14. echo "Usage: $(basename "$0") <service> [command]"
  15. for service in /etc/init.d/* ; do
  16. boot="$($service enabled && echo "enabled" || echo "disabled" )"
  17. status="$( [ "$(ubus call service list "{ 'verbose': true, 'name': '$(basename "$service")' }" \
  18. | jsonfilter -q -e "@['$(basename "$service")'].instances[*].running" | uniq)" = "true" ] \
  19. && echo "running" || echo "stopped" )"
  20. printf "%-30s\\t%10s\\t%10s\\n" "$service" "$boot" "$status"
  21. done
  22. }
  23. main "$@"