[ff-firmware-devel] sysupgrade im Hintergrund

Nils Schneider nils at nilsschneider.net
Mo Jun 16 20:55:38 CEST 2014


Also forken und stdio+err redirecten ist wirklich der einzig sinnvolle
Weg für ein sysupgrade. Man sollte dabei nämlich vermeiden, dass
irgendetwas passieren könnte, was das flashen abbrechen
könnte. Insbesondere sollte auch sichergestellt werden, dass
sysupgrade kein SIGPIPE o.ä. erhalten kann. Damit kann man sich
wunderbar die Hardware bricken.

Beim Webserver kann so ein SIGPIPE übrigens auftreten, wenn der User
das Browsertab schließt oder der hostapd, über den die WLAN Verbindung
läuft, gekillt wird.


At Mon, 16 Jun 2014 15:48:41 +0200,
Moritz Warning wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
> 
> Ja, das würde vermutlich funktionieren.
> Aber Patches sind schon etwas nervig.
> Vielleicht könnte sysupgrade es einfach es unterlassen seinen Elternprozess zu killen. :>
> 
> On 06/16/2014 11:08 AM, Stephan (Freifunk Dresden) wrote:
> > Hi,
> > 
> > versuche doch einfach das killen des uhttpd (webservers) vom sysupgrade auszuschliessen.
> > Wenn dieser nicht gekillt wird, hast du eine saubere Variante.
> > 
> > Schaumal dazu bei (12.09) in das File:
> > /lib/upgrade/common.sh Zeile 102.
> > Dort sind die Services angegeben, die nicht gekillt werden. füge dort
> > einfach "|*uhttpd*" hinzu.
> > Ich habe es allerdings noch nicht probiert ob es funktioniert.
> > 
> > Viele Grüße
> >  Stephan (freifunk dresden)
> > 
> > 
> > Am 16.06.2014 03:19, schrieb Moritz Warning:
> > Ok, danke für den Tipp.
> > Lua verwende ich zwar nicht aber wäre vermutlich schöner also so
> > manches shell script. :)
> > 
> > Da fällt mir ein - ich muss mal schauen ob man nicht das init-System dafür
> > missbrauchen könnte.
> > 
> > On 06/15/2014 09:41 PM, Nils Schneider wrote:
> >>>> Hey,
> >>>>
> >>>> deine Sorge ist durchaus begründet. Nutzt du dafür lua? Falls ja, in
> >>>> Gluon machen wir das so:
> >>>>
> >>>> https://github.com/freifunk-gluon/packages/blob/master/gluon/gluon-luci-admin/files/usr/lib/lua/luci/controller/admin/upgrade.lua
> >>>>
> >>>> (ganz unten)
> >>>>
> >>>> Also im Prinzip: forken, stdio(+err) nach /dev/null umbiegen,
> >>>> sysupgrade ausführen. Andernfalls könnte es sogar passieren, dass
> >>>> sysupgrade den Webserver und damit sich selbst killt.
> >>>>
> >>>> Grüße
> >>>> Nils
> >>>>
> >>>> At Sat, 14 Jun 2014 05:39:27 +0200,
> >>>> Moritz Warning wrote:
> >>>>>
> >>>> Hallo,
> >>>>
> >>>> ich starte sysupgrade als cgi script über den webserver
> >>>> und habe den Endruck das sysupgrade sich über den webserver
> >>>> selber abschießen könnte.
> >>>> Hat jemand eine schöne Idee wie sysupgrade im Hintergrund
> >>>> ausgeführt werden kann? Oder ist meine Sorge unbegründet?
> >>>>
> >>>> Grüße,
> >>>> mwarning
> >>>>> -- 
> >>>>> firmware-devel mailing list
> >>>>> firmware-devel at freifunk.net
> >>>>> http://lists.freifunk.net/mailman/listinfo/firmware-devel-freifunk.net
> > 
> > 
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.12 (GNU/Linux)
> Comment: Using GnuPG with Icedove - http://www.enigmail.net/
> 
> iQEcBAEBCAAGBQJTnvW5AAoJECHrh56PP4wp4jcIAL5xh8ajJfe2uo8Qz4DNq/TT
> vjCcFj2qYi6mpipX8GvbUr7slPFUHCHeavPq064UG39BKpGj+dT4ZS44mfO0Vkwi
> xP2fRvKY/pV8M5uPsy5waRatprPD50QaYoJyd5ZbiTil+HIu/sXpZJ0I3jJhzHGb
> q/X0MYHBGAKZXdg9WACtheyX10LfV6ktoiuVjjTLuTEphozUT6kK/ek2n9HqewKw
> fT5Na9HnBWZp6n+2x+FrLdn0nx2/nkQVB9SbCz2hTpcWg263DRD0mo2WNXEL8W3Q
> aEek97yviiqA9bgyLSFCu6IynueLBuaqYUx5WmA+vcVcWgCkVEZoOVBJN67EmtE=
> =EMdo
> -----END PGP SIGNATURE-----
> -- 
> firmware-devel mailing list
> firmware-devel at freifunk.net
> http://lists.freifunk.net/mailman/listinfo/firmware-devel-freifunk.net


Mehr Informationen über die Mailingliste firmware-devel