From 7519a36774ca0e50dfae6a4b9fea75cab95171a5 Mon Sep 17 00:00:00 2001 From: Luiz Angelo Daros de Luca Date: Tue, 11 Sep 2018 22:35:09 -0300 Subject: base-files,procd: add generic service status MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a default status action for init.d scripts. procd "service status" will return: 0) for loaded services (even if disabled by conf or dead) 3) for inactive services 4) when filtering a non-existing instance Signed-off-by: Luiz Angelo Daros de Luca [rebased, cleaned up] Signed-off-by: Petr Štetiar --- package/system/procd/files/procd.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'package/system') diff --git a/package/system/procd/files/procd.sh b/package/system/procd/files/procd.sh index 8d6d406012..a9d2b341be 100644 --- a/package/system/procd/files/procd.sh +++ b/package/system/procd/files/procd.sh @@ -443,6 +443,31 @@ _procd_send_signal() { _procd_ubus_call signal } +_procd_status() { + local service="$1" + local instance="$2" + local data + + json_init + [ -n "$service" ] && json_add_string name "$service" + + data=$(_procd_ubus_call list | jsonfilter -e '@["'"$service"'"]') + [ -z "$data" ] && { echo "inactive"; return 3; } + + data=$(echo "$data" | jsonfilter -e '$.instances') + if [ -z "$data" ]; then + [ -z "$instance" ] && { echo "active with no instances"; return 0; } + data="[]" + fi + + [ -n "$instance" ] && instance="\"$instance\"" || instance='*' + if [ -z "$(echo "$data" | jsonfilter -e '$['"$instance"']')" ]; then + echo "unknown instance $instance"; return 4 + else + echo "running"; return 0 + fi +} + procd_open_data() { local name="$1" json_set_namespace procd __procd_old_cb -- cgit v1.2.3