[OpenWrt-Devel] [PATCH] procd: Allow override of default respawn parameters

John Crispin blogic at openwrt.org
Fri Sep 18 04:18:59 EDT 2015


Hi

On 18/09/2015 09:59, Helmut Schaa wrote:
> Allow to pass RESPAWN_THESHOLD_DEFAULT, DRESPAWN_TIMEOUT_DEFAULT
> and RESPAWN_RETRY_DEFAULT as parameters to cmake to change the
> default respawn behavior.
> 

technically ok but why cant you tweak them in your packages initd script
? i am wondering what the use case is and if there are other possible
solutions


> This can be used to set the default respawn mode to infinite retries
> for example.
> 

it can already to that.


	John



> Signed-off-by: Helmut Schaa <helmut.schaa at googlemail.com>
> ---
>  CMakeLists.txt     | 12 ++++++++++++
>  service/instance.c |  4 +++-
>  service/instance.h | 12 +++++++++++-
>  3 files changed, 26 insertions(+), 2 deletions(-)
> 
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index 6af17a3..721a381 100644
> --- a/CMakeLists.txt
> +++ b/CMakeLists.txt
> @@ -23,6 +23,18 @@ SET(SOURCES procd.c signal.c watchdog.c state.c	inittab.c rcS.c	ubus.c system.c
>  
>  SET(LIBS ubox ubus json-c blobmsg_json json_script)
>  
> +IF(RESPAWN_THESHOLD_DEFAULT)
> +  ADD_DEFINITIONS(-DRESPAWN_THESHOLD_DEFAULT=${RESPAWN_THESHOLD_DEFAULT})
> +ENDIF()
> +
> +IF(RESPAWN_TIMEOUT_DEFAULT)
> +  ADD_DEFINITIONS(-DRESPAWN_TIMEOUT_DEFAULT=${RESPAWN_TIMEOUT_DEFAULT})
> +ENDIF()
> +
> +IF(RESPAWN_RETRY_DEFAULT)
> +  ADD_DEFINITIONS(-DRESPAWN_RETRY_DEFAULT=${RESPAWN_RETRY_DEFAULT})
> +ENDIF()
> +
>  IF(DEBUG)
>    ADD_DEFINITIONS(-DDEBUG -g3)
>  ENDIF()
> diff --git a/service/instance.c b/service/instance.c
> index 40ff021..9d4df7c 100644
> --- a/service/instance.c
> +++ b/service/instance.c
> @@ -709,7 +709,9 @@ instance_config_parse(struct service_instance *in)
>  
>  	if (tb[INSTANCE_ATTR_RESPAWN]) {
>  		int i = 0;
> -		uint32_t vals[3] = { 3600, 5, 5};
> +		uint32_t vals[3] = { RESPAWN_THRESHOLD_DEFAULT,
> +				     RESPAWN_TIMEOUT_DEFAULT,
> +				     RESPAWN_RETRY_DEFAULT };
>  
>  		blobmsg_for_each_attr(cur2, tb[INSTANCE_ATTR_RESPAWN], rem) {
>  			if ((i >= 3) && (blobmsg_type(cur2) == BLOBMSG_TYPE_STRING))
> diff --git a/service/instance.h b/service/instance.h
> index 3fb33e9..ab05f20 100644
> --- a/service/instance.h
> +++ b/service/instance.h
> @@ -20,7 +20,17 @@
>  #include <libubox/ustream.h>
>  #include "../utils/utils.h"
>  
> -#define RESPAWN_ERROR	(5 * 60)
> +#ifndef RESPAWN_THRESHOLD_DEFAULT
> +#define RESPAWN_THRESHOLD_DEFAULT 3600
> +#endif
> +
> +#ifndef RESPAWN_TIMEOUT_DEFAULT
> +#define RESPAWN_TIMEOUT_DEFAULT 5
> +#endif
> +
> +#ifndef RESPAWN_RETRY_DEFAULT
> +#define RESPAWN_RETRY_DEFAULT 5
> +#endif
>  
>  struct jail {
>  	bool procfs;
> 
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list