[PATCH] fff-hoods: remove dependency to /tmp/started

Adrian Schmutzler mail at adrianschmutzler.de
Fr Aug 3 12:43:53 CEST 2018


Hallo,

ich habe gerade mal wieder über das Thema nachgedacht.

Es kommt ja gelegentlich vor, dass configurehood hängt, und dann wird es zigmal
gestartet. Das würde dieser Patch beheben.

Die Konsequenz wäre aber, dass dann das ursprüngliche configurehood solange
alleine läuft, bis es "fertig ist". Hängt es allerdings wirklich, wird es nie
fertig und der Router hängt auch.

Wäre es nicht irgendwie sinnvoller, einen Mechanismus zu finden, der ein
hängendes configurehood abschießt?

Gibt es für sowas in Linux Mechanismen? Primitiv könnte man natürlich einfach
per micrond zwei Minuten später den Prozess killen, aber vll. gibt es für sowas
was elegantes? Vll. gibt es auch etwas, was nicht nur einfach von der Zeit
abhängt?

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf Of
> Tim Niemeyer
> Sent: Samstag, 20. Januar 2018 23:04
> To: franken-dev at freifunk.net
> Subject: [PATCH] fff-hoods: remove dependency to /tmp/started
> 
> The dependency was only to avoid duplicated script instances.
> Therefore, this patch implements a solution without the need to depend
> on the /tmp/started file.
> 
> Signed-off-by: Tim Niemeyer <tim at tn-x.org>
> ---
> 
>  src/packages/fff/fff-hoods/Makefile                         | 2 +-
>  src/packages/fff/fff-hoods/files/usr/lib/micron.d/fff-hoods | 2 +-
>  src/packages/fff/fff-hoods/files/usr/sbin/configurehood     | 7 +++++++
>  3 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/src/packages/fff/fff-hoods/Makefile
> b/src/packages/fff/fff-hoods/Makefile
> index 11ab6d1..1a616ff 100644
> --- a/src/packages/fff/fff-hoods/Makefile
> +++ b/src/packages/fff/fff-hoods/Makefile
> @@ -1,7 +1,7 @@
>  include $(TOPDIR)/rules.mk
> 
>  PKG_NAME:=fff-hoods
> -PKG_VERSION:=0.0.1
> +PKG_VERSION:=2
>  PKG_RELEASE:=1
> 
>  PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
> diff --git a/src/packages/fff/fff-hoods/files/usr/lib/micron.d/fff-hoods
> b/src/packages/fff/fff-hoods/files/usr/lib/micron.d/fff-hoods
> index 39e800e..ca8d798 100644
> --- a/src/packages/fff/fff-hoods/files/usr/lib/micron.d/fff-hoods
> +++ b/src/packages/fff/fff-hoods/files/usr/lib/micron.d/fff-hoods
> @@ -1 +1 @@
> -*/5 * * * * [ -f /tmp/started ] && /usr/sbin/configurehood
> +*/5 * * * * /usr/sbin/configurehood
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 2aaa245..e14995b 100755
> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> @@ -1,5 +1,12 @@
>  #!/bin/sh
> 
> +lockfile="/var/lock/${0##*/}.lock"
> +if ! lock -n "$lockfile"; then
> +	echo "Only one instance of $0 allowed."
> +	exit 1
> +fi
> +trap "lock -u \"$lockfile\"" INT TERM EXIT
> +
>  . /usr/share/libubox/jshn.sh
>  . /lib/functions/fff/keyxchange
>  . /lib/functions/fff/network
> --
> 2.11.0
> 
> --
> franken-dev mailing list
> franken-dev at freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net



Mehr Informationen über die Mailingliste franken-dev