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

Rafał Miłecki zajec5 at gmail.com
Wed May 1 23:05:19 PDT 2019


On Wed, 1 May 2019 at 19:09, Jo-Philipp Wich <jo at mein.io> wrote:
> > 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.

It's handed by:
json_add_string name "$service"

and then _procd_ubus_call using that JSON that was built before calling it.



More information about the openwrt-devel mailing list