Kaynağa Gözat

procd: add procd_running() helper for checking running state

This should be helpful for implementing service_running() in procd init
scripts.

Signed-off-by: Rafał Miłecki <[email protected]>
Acked-by: John Crispin <[email protected]>
Rafał Miłecki 6 yıl önce
ebeveyn
işleme
2c3dd70741

+ 1 - 1
package/system/procd/Makefile

@@ -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

+ 15 - 0
package/system/procd/files/procd.sh

@@ -30,6 +30,9 @@
 # procd_close_instance():
 #   Complete the instance being prepared
 #
+# procd_running(service, [instance]):
+#   Checks if service/instance is currently running
+#
 # procd_kill(service, [instance]):
 #   Kill a service instance (or all instances)
 #
@@ -402,6 +405,18 @@ _procd_add_instance() {
 	_procd_close_instance
 }
 
+procd_running() {
+	local service="$1"
+	local instance="${2:-instance1}"
+	local running
+
+	json_init
+	json_add_string name "$service"
+	running=$(_procd_ubus_call list | jsonfilter -e "@.$service.instances.${instance}.running")
+
+	[ "$running" = "true" ]
+}
+
 _procd_kill() {
 	local service="$1"
 	local instance="$2"