procd: Allow to configure default respawn retry count
authorJohn Crispin <john@openwrt.org>
Fri, 4 Mar 2016 08:33:36 +0000 (08:33 +0000)
committerJohn Crispin <john@openwrt.org>
Fri, 4 Mar 2016 08:33:36 +0000 (08:33 +0000)
Extend /etc/config/system with a parameter to set the
default respawn retry for procd launched services that
have respawn enabled.

config service
         option respawn_retry -1

All services that don't specify specific respawn parameters
will get their defaults added by procd.sh. If respawn_retry
is specified in /etc/config/system the default retry limit
will be set to this value by procd.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
SVN-Revision: 48915

package/system/procd/files/procd.sh

index a2a63f8cd5489a68f9e32b21fd3fe85321822619..78b01627d8cfa5d7c16ee54abe05b2b19b48815d 100644 (file)
@@ -316,6 +316,16 @@ _procd_append_param() {
 }
 
 _procd_close_instance() {
+       local respawn_vals
+       if json_select respawn ; then
+               json_get_values respawn_vals
+               if [ -z "$respawn_vals" ]; then
+                       local respawn_retry=$(uci_get system.@service[0].respawn_retry)
+                       _procd_add_array_data 3600 5 ${respawn_retry:-5}
+               fi
+               json_select ..
+       fi
+
        json_close_object
 }