[OpenWrt-Devel] [PATCH] procd: add procd_running() helper for checking running state

Jo-Philipp Wich jo at mein.io
Wed May 1 10:08:53 PDT 2019


Hi,

comment inline below.

> From: Rafał Miłecki <rafal at milecki.pl>
> 
> This should be helpful for implementing service_running() in procd init
> scripts.
> 
> Signed-off-by: Rafał Miłecki <rafal at 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")

Pass '{ "name": "'"$service"'" }' as argument to the list call to reduce the amount of output you
need to filter.

> +
> +	[ "$running" = "true" ]
> +}
> +
>  _procd_kill() {
>  	local service="$1"
>  	local instance="$2"
> 


~ Jo

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20190501/fe5afc0b/attachment.sig>


More information about the openwrt-devel mailing list