aboutsummaryrefslogtreecommitdiffstats
path: root/package/system
diff options
context:
space:
mode:
Diffstat (limited to 'package/system')
-rw-r--r--package/system/procd/files/procd.sh25
1 files changed, 25 insertions, 0 deletions
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