diff --git a/package/base-files/Makefile b/package/base-files/Makefile index c06b534bea..0c612b73ca 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk include $(INCLUDE_DIR)/feeds.mk PKG_NAME:=base-files -PKG_RELEASE:=238 +PKG_RELEASE:=239 PKG_FLAGS:=nonshared PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/ diff --git a/package/base-files/files/etc/shinit b/package/base-files/files/etc/shinit index dccba34b69..8c64e81563 100644 --- a/package/base-files/files/etc/shinit +++ b/package/base-files/files/etc/shinit @@ -9,12 +9,24 @@ alias ll='ls -alF --color=auto' [ -x /usr/bin/ldd ] || ldd() { LD_TRACE_LOADED_OBJECTS=1 $*; } service() { - [ -f "/etc/init.d/$1" ] || { - echo "service "'"'"$1"'"'" not found, the following services are available:" - ls "/etc/init.d" + if [ -f "/etc/init.d/$1" ]; then + /etc/init.d/$@ + else + echo "Usage: service [command]" + if [ -n "$1" ]; then + echo "Service "'"'"$1"'"'" not found, the following services are available:" + else + echo "The following services are available:" + fi + for F in /etc/init.d/* ; do + printf "%-30s\t%10s\t%10s\n" "$F" \ + $( $($F enabled) && echo "enabled" || echo "disabled" ) \ + $( [ "$(ubus call service list "{ 'verbose': true, 'name': '$(basename $F)' }" \ + | jsonfilter -q -e "@.$(basename $F).instances[*].running")" = "true" ] \ + && echo "running" || echo "stopped" ) + done; return 1 - } - /etc/init.d/$@ + fi } [ -n "$KSH_VERSION" -o \! -s "$HOME/.shinit" ] || . "$HOME/.shinit"