fff-nodewatcher: Make nodewatcher independent of /tmp/startet

Submitted by Robert Langhammer on April 16, 2019, 7:42 a.m.

Details

Message ID 20190416074236.22079-1-rlanghammer@web.de
State Superseded
Headers show

Commit Message

Robert Langhammer April 16, 2019, 7:42 a.m.
Signed-off-by: Robert Langhammer <rlanghammer@web.de>

---

Checking /tmp/strted was needed that modewatcher does not start too early. Prohibit the start in the first 5 minutes
does the same and nodewatcher is independent of /tmp/started, which can be removed later.
---
 .../fff/fff-nodewatcher/files/usr/lib/micron.d/fff-nodewatcher  | 2 +-
 src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher     | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

--
2.20.1

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-nodewatcher b/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-nodewatcher
index 55a2cc0..d67b087 100644
--- a/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-nodewatcher
+++ b/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-nodewatcher
@@ -1 +1 @@ 
-*/5 * * * * sleep $(/usr/bin/random 0 29); /usr/sbin/nodewatcher
+*/5 * * * * sleep $(/usr/bin/random 0 29); [ $(cut -f1 -d . /proc/uptime) -gt 300 ] && /usr/sbin/nodewatcher
diff --git a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
index 5e75f03..cc634a5 100755
--- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
+++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
@@ -2,8 +2,6 @@ 
 # Netmon Nodewatcher (C) 2010-2012 Freifunk Oldenburg
 # License; GPL v3

-test -f /tmp/started || exit
-
 # Allow only one instance
 lockfile="/var/lock/${0##*/}.lock"
 if ! lock -n "$lockfile"; then

Comments

Adrian Schmutzler April 16, 2019, 11:51 a.m.
Hallo Robert,

pragmatisch und einfach.

Wenn ich allerdings etwas darüber nachdenke, ist das im Prinzip eine Race-Condition.

Du nimmst ja an, dass der Bootvorgang bis START=50 nur 5 Minuten dauert. Das wird zwar quasi immer der Fall sein, stört mich aber irgendwie.

Umgekehrt dauert es im ungünstigen Fall fast 10 Minuten, bis der nodewatcher nach dem Start das erste Mal läuft. Dieses Problem könnte man aber einfach lösen, indem man den nodewatcher auch einmal per init.d aufruft, wenn alles andere vorbei ist.

Wenn es nach mir geht, kann wie bereits gesagt der nodewatcher einfach sterben, wenn er läuft, bevor alfred da ist.

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of
> Robert Langhammer
> Sent: Dienstag, 16. April 2019 09:43
> To: franken-dev@freifunk.net
> Subject: [PATCH] fff-nodewatcher: Make nodewatcher independent of
> /tmp/startet
> 
> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
> 
> ---
> 
> Checking /tmp/strted was needed that modewatcher does not start too early.
> Prohibit the start in the first 5 minutes
> does the same and nodewatcher is independent of /tmp/started, which can be
> removed later.
> ---
>  .../fff/fff-nodewatcher/files/usr/lib/micron.d/fff-nodewatcher  | 2 +-
>  src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher     | 2 --
>  2 files changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-
> nodewatcher b/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-
> nodewatcher
> index 55a2cc0..d67b087 100644
> --- a/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-nodewatcher
> +++ b/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-
> nodewatcher
> @@ -1 +1 @@
> -*/5 * * * * sleep $(/usr/bin/random 0 29); /usr/sbin/nodewatcher
> +*/5 * * * * sleep $(/usr/bin/random 0 29); [ $(cut -f1 -d . /proc/uptime) -gt 300
> ] && /usr/sbin/nodewatcher
> diff --git a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> index 5e75f03..cc634a5 100755
> --- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> +++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> @@ -2,8 +2,6 @@
>  # Netmon Nodewatcher (C) 2010-2012 Freifunk Oldenburg
>  # License; GPL v3
> 
> -test -f /tmp/started || exit
> -
>  # Allow only one instance
>  lockfile="/var/lock/${0##*/}.lock"
>  if ! lock -n "$lockfile"; then
> --
> 2.20.1
Robert Langhammer April 16, 2019, 1:42 p.m.
Hi Adrian,
das sind genau die zwei Sachen, die ich mir auch überlegt habe. Und die Einfachheit hat gesiegt. Im Normalfall wird init schneller fertig sein. Und wenn nicht, ist es auch nicht schlimm. Der nodwatcher macht nichts kaputt.
Erster Start nach spätestens 10 Minuten find ich auch nicht tragisch.
Ein erster Start aus init.d könnte man machen.
Nimm das einfach mal als Idee mit, wenn du am Start weiter bastelst. 

Am 16. April 2019 13:51:15 MESZ schrieb Adrian Schmutzler <mail@adrianschmutzler.de>:
>Hallo Robert,
>
>pragmatisch und einfach.
>
>Wenn ich allerdings etwas darüber nachdenke, ist das im Prinzip eine
>Race-Condition.
>
>Du nimmst ja an, dass der Bootvorgang bis START=50 nur 5 Minuten
>dauert. Das wird zwar quasi immer der Fall sein, stört mich aber
>irgendwie.
>
>Umgekehrt dauert es im ungünstigen Fall fast 10 Minuten, bis der
>nodewatcher nach dem Start das erste Mal läuft. Dieses Problem könnte
>man aber einfach lösen, indem man den nodewatcher auch einmal per
>init.d aufruft, wenn alles andere vorbei ist.
>
>Wenn es nach mir geht, kann wie bereits gesagt der nodewatcher einfach
>sterben, wenn er läuft, bevor alfred da ist.
>
>Grüße
>
>Adrian
>
>> -----Original Message-----
>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
>Of
>> Robert Langhammer
>> Sent: Dienstag, 16. April 2019 09:43
>> To: franken-dev@freifunk.net
>> Subject: [PATCH] fff-nodewatcher: Make nodewatcher independent of
>> /tmp/startet
>> 
>> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
>> 
>> ---
>> 
>> Checking /tmp/strted was needed that modewatcher does not start too
>early.
>> Prohibit the start in the first 5 minutes
>> does the same and nodewatcher is independent of /tmp/started, which
>can be
>> removed later.
>> ---
>>  .../fff/fff-nodewatcher/files/usr/lib/micron.d/fff-nodewatcher  | 2
>+-
>>  src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher     | 2
>--
>>  2 files changed, 1 insertion(+), 3 deletions(-)
>> 
>> diff --git
>a/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-
>> nodewatcher
>b/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-
>> nodewatcher
>> index 55a2cc0..d67b087 100644
>> ---
>a/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-nodewatcher
>> +++ b/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-
>> nodewatcher
>> @@ -1 +1 @@
>> -*/5 * * * * sleep $(/usr/bin/random 0 29); /usr/sbin/nodewatcher
>> +*/5 * * * * sleep $(/usr/bin/random 0 29); [ $(cut -f1 -d .
>/proc/uptime) -gt 300
>> ] && /usr/sbin/nodewatcher
>> diff --git
>a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
>> b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
>> index 5e75f03..cc634a5 100755
>> --- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
>> +++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
>> @@ -2,8 +2,6 @@
>>  # Netmon Nodewatcher (C) 2010-2012 Freifunk Oldenburg
>>  # License; GPL v3
>> 
>> -test -f /tmp/started || exit
>> -
>>  # Allow only one instance
>>  lockfile="/var/lock/${0##*/}.lock"
>>  if ! lock -n "$lockfile"; then
>> --
>> 2.20.1
Adrian Schmutzler April 17, 2019, 10:29 p.m.
Hallo,

ich habe es nun geschafft, dass configurehood mit START=35 funktioniert.
Nur ein paar kleine Fragezeichen sind noch offen, die man dann irgendwann abräumen kann.

Ich werde das aber wohl erst an die Liste schicken, wenn network und wireless umgebaut sind. (Ohne geht es sowieso nicht.)

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Robert Langhammer
> Sent: Dienstag, 16. April 2019 15:43
> To: franken-dev@freifunk.net
> Subject: RE: [PATCH] fff-nodewatcher: Make nodewatcher independent of
> /tmp/startet
> 
> Hi Adrian,
> das sind genau die zwei Sachen, die ich mir auch überlegt habe. Und die
> Einfachheit hat gesiegt. Im Normalfall wird init schneller fertig sein. Und
> wenn nicht, ist es auch nicht schlimm. Der nodwatcher macht nichts kaputt.
> Erster Start nach spätestens 10 Minuten find ich auch nicht tragisch.
> Ein erster Start aus init.d könnte man machen.
> Nimm das einfach mal als Idee mit, wenn du am Start weiter bastelst.
> 
> Am 16. April 2019 13:51:15 MESZ schrieb Adrian Schmutzler
> <mail@adrianschmutzler.de>:
> >Hallo Robert,
> >
> >pragmatisch und einfach.
> >
> >Wenn ich allerdings etwas darüber nachdenke, ist das im Prinzip eine
> >Race-Condition.
> >
> >Du nimmst ja an, dass der Bootvorgang bis START=50 nur 5 Minuten
> >dauert. Das wird zwar quasi immer der Fall sein, stört mich aber
> >irgendwie.
> >
> >Umgekehrt dauert es im ungünstigen Fall fast 10 Minuten, bis der
> >nodewatcher nach dem Start das erste Mal läuft. Dieses Problem könnte
> >man aber einfach lösen, indem man den nodewatcher auch einmal per
> >init.d aufruft, wenn alles andere vorbei ist.
> >
> >Wenn es nach mir geht, kann wie bereits gesagt der nodewatcher einfach
> >sterben, wenn er läuft, bevor alfred da ist.
> >
> >Grüße
> >
> >Adrian
> >
> >> -----Original Message-----
> >> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On
> Behalf
> >Of
> >> Robert Langhammer
> >> Sent: Dienstag, 16. April 2019 09:43
> >> To: franken-dev@freifunk.net
> >> Subject: [PATCH] fff-nodewatcher: Make nodewatcher independent of
> >> /tmp/startet
> >>
> >> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
> >>
> >> ---
> >>
> >> Checking /tmp/strted was needed that modewatcher does not start too
> >early.
> >> Prohibit the start in the first 5 minutes does the same and
> >> nodewatcher is independent of /tmp/started, which
> >can be
> >> removed later.
> >> ---
> >>  .../fff/fff-nodewatcher/files/usr/lib/micron.d/fff-nodewatcher  | 2
> >+-
> >>  src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher     | 2
> >--
> >>  2 files changed, 1 insertion(+), 3 deletions(-)
> >>
> >> diff --git
> >a/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-
> >> nodewatcher
> >b/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-
> >> nodewatcher
> >> index 55a2cc0..d67b087 100644
> >> ---
> >a/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-nodewatch
> >er
> >> +++ b/src/packages/fff/fff-nodewatcher/files/usr/lib/micron.d/fff-
> >> nodewatcher
> >> @@ -1 +1 @@
> >> -*/5 * * * * sleep $(/usr/bin/random 0 29); /usr/sbin/nodewatcher
> >> +*/5 * * * * sleep $(/usr/bin/random 0 29); [ $(cut -f1 -d .
> >/proc/uptime) -gt 300
> >> ] && /usr/sbin/nodewatcher
> >> diff --git
> >a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> >> b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> >> index 5e75f03..cc634a5 100755
> >> --- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> >> +++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
> >> @@ -2,8 +2,6 @@
> >>  # Netmon Nodewatcher (C) 2010-2012 Freifunk Oldenburg  # License;
> >> GPL v3
> >>
> >> -test -f /tmp/started || exit
> >> -
> >>  # Allow only one instance
> >>  lockfile="/var/lock/${0##*/}.lock"
> >>  if ! lock -n "$lockfile"; then
> >> --
> >> 2.20.1