<div dir="ltr">Somebody who is better with jsonfilter than me might be able to clean this up, but it does the trick:<br><br><span style="font-family:monospace"><span style="color:rgb(0,0,0)">#!/bin/sh
</span><br>
<br>. /usr/share/libubox/jshn.sh
<br>
<br>json_load "$(ubus call service list)"
<br>json_get_keys SERVICES
<br>
<br>for SERVICE in $SERVICES; do
<br>    echo "$SERVICE: `ubus call service list | jsonfilter -e "@.$SERVICE.instances[\"*\"].running"`"
<br>done</span><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 4, 2020 at 2:56 AM Stan Grishin <<a href="mailto:stangri@melmac.net">stangri@melmac.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, Jun 3, 2020 at 4:53 PM Michael Jones <<a href="mailto:mike@meshplusplus.com" target="_blank">mike@meshplusplus.com</a>> wrote:<br>
><br>
><br>
><br>
> On Wed, Jun 3, 2020 at 6:21 PM Stan Grishin <<a href="mailto:stangri@melmac.net" target="_blank">stangri@melmac.net</a>> wrote:<br>
>><br>
>> To obtain the list of enabled (for autostart) services, you'd type<br>
>> service list-enabled. For disabled services service list-disabled. It<br>
>> is useful when you need to quickly check which services are<br>
>> enabled/disabled or when helping other users troubleshoot.<br>
>><br>
>> An alternative to list-enabled/list-disabled that I have considered<br>
>> was to output the enabled status of available services below the usage<br>
>> output, ie replace:<br>
>>                 if [ -n "$1" ]; then<br>
>>                         echo "service "'"'"$1"'"'" not found, the<br>
>> following services are available:"<br>
>>                     ls "/etc/init.d"<br>
>>                 fi<br>
>><br>
>> with<br>
>><br>
>>                 if [ -n "$1" ]; then<br>
>>                         echo "service "'"'"$1"'"'" not found, the<br>
>> following services are available:"<br>
>>                     for F in /etc/init.d/* ; do<br>
>>                         $F enabled && echo "$F (autostart enabled)" ||<br>
>> echo "$F (autostart **disabled**)"<br>
>>                     done;<br>
>>                 fi<br>
>><br>
>><br>
>> Please elaborate on the list-start and list-stop question, I'm not<br>
>> sure I understand the purpose of those.<br>
><br>
><br>
> Originally I asked that question because I misunderstood what the goal of this change was.<br>
><br>
> I thought that you were proposing to add the ability to enable / disable multiple services at the same time, so I was asking about the ability to start / stop multiple services at the same time.<br>
><br>
> It's clear not that's not what you were trying to propose.<br>
><br>
> So instead, what about listing the services that are running, and also listing the services that are configured, but not running?<br>
<br>
Is there an easy universal way to determine if the service is running?<br>
<br>
> I don't know that that provides a lot of value, so it may not be worth doing.<br>
<br>
If there's a one/two liner to figure out if a service is running or<br>
not, it may be better to implement `service list` which would print<br>
the table of available init scripts, wherever they are enabled or not<br>
and wherever they are running or not.<br>
<br>
If that is deemed to be a better approach I can resubmit the patch.<br>
<br>
_______________________________________________<br>
openwrt-devel mailing list<br>
<a href="mailto:openwrt-devel@lists.openwrt.org" target="_blank">openwrt-devel@lists.openwrt.org</a><br>
<a href="https://lists.openwrt.org/mailman/listinfo/openwrt-devel" rel="noreferrer" target="_blank">https://lists.openwrt.org/mailman/listinfo/openwrt-devel</a><br>
</blockquote></div>