From: Alexander Egorenkov Date: Sun, 28 Mar 2021 08:45:08 +0000 (+0200) Subject: base-files: fix status display command X-Git-Tag: v21.02.0-rc1~14 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=eaf19220b67d83c4c596fa21890abf5af9b4a610;p=openwrt%2Fopenwrt.git base-files: fix status display command If service() is called w/o parameter then the status display for services with multiple instances is incorrect. E.g. samba4 or wpad have 2 instances. root@OpenWrt:~# /etc/init.d/samba4 status running root@OpenWrt:~# /etc/init.d/wpad status running Before change: /etc/init.d/samba4 enabled stopped /etc/init.d/wpad enabled stopped After change: /etc/init.d/samba4 enabled running /etc/init.d/wpad enabled running Signed-off-by: Alexander Egorenkov (cherry picked from commit 9318f61556c5443eb66eec7e26715b00f0df86fc) --- diff --git a/package/base-files/files/etc/shinit b/package/base-files/files/etc/shinit index 8c64e81563..0a1ebcc832 100644 --- a/package/base-files/files/etc/shinit +++ b/package/base-files/files/etc/shinit @@ -22,7 +22,7 @@ service() { 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" ] \ + | jsonfilter -q -e "@.$(basename $F).instances[*].running" | uniq)" = "true" ] \ && echo "running" || echo "stopped" ) done; return 1