From: Rafał Miłecki <ra...@milecki.pl>

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

Signed-off-by: Rafał Miłecki <ra...@milecki.pl>
---
 package/system/procd/files/procd.sh | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/package/system/procd/files/procd.sh 
b/package/system/procd/files/procd.sh
index 72f25fe0c0..ade55a344f 100644
--- a/package/system/procd/files/procd.sh
+++ b/package/system/procd/files/procd.sh
@@ -26,6 +26,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)
 #
@@ -398,6 +401,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"
-- 
2.21.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to