procd: fix invalid JSON filter expression in procd_running()

Since service and instance names may contain characters which are not allowed
in JSON path labels, such as dashes or spaces, change the filter expression
to array square bracket notation to properly match these cases as well.

Fixes: 2c3dd70741 ("procd: add procd_running() helper for checking running state")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit c933b6d22478c1113629ef549beea6337f978d62)
master
Jo-Philipp Wich 5 years ago
parent c7e3ca59ab
commit 9cae5a8289
  1. 2
      package/system/procd/Makefile
  2. 2
      package/system/procd/files/procd.sh

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=procd
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git

@ -412,7 +412,7 @@ procd_running() {
json_init
json_add_string name "$service"
running=$(_procd_ubus_call list | jsonfilter -e "@.$service.instances.${instance}.running")
running=$(_procd_ubus_call list | jsonfilter -e "@['$service'].instances['$instance'].running")
[ "$running" = "true" ]
}

Loading…
Cancel
Save