fff-layer3: Make it easier to keep the settings in testmode #9
No reviewers
Labels
No Label
RFC
RFT
WIP
blocked
bsp
bug
build/scripts/tools
duplicate
feature
fixed
layer3
mantis
more details required
needs changes
node
packages/fff
rejected
security
trivial
upstream
No Milestone
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: freifunk-franken/firmware#9
Loading…
Reference in New Issue
No description provided.
Delete Branch "ChristianD/firmware:keepchanges"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
On call -t we write the pid on /tmp/configure-layer3-pid.
If the script exits from user we use trap to run the new function keep_changes()
If the connections to the router lost, the user can run configure-layer3 -k after
reconnect to keep changes manually
Signed-off-by: Christian Dresel freifunk@dresel.systems
@ -69,0 +73,4 @@
rm /tmp/configuregatewaypid
exit;
else
echo "No configuregateway -t is running"
"configuregateway -t is not running"
@ -86,6 +104,7 @@ usage() {
echo "Options:"
echo " -c: configure. No commit, no restart!"
echo " -t: test changes. Restarts services, waits up to 200s for SIGINT"
echo " -k: Keep changes in Testmode"
"test mode"
Äh, und besser "keep changes from test mode"
9c2d1ad377
to8566f77725
8566f77725
tof8b9f70009
vielleicht noch eine kurze Erklärung was das trap macht, weil es nicht unbedingt was gewöhnliches ist.
Mit trap kann man Signale die von außen an das Script gesendet werden abfangen (z.b. STRG+C oder kill/killall) und im Script noch eine Funktion (in dem Fall keep_changes()) aufrufen bevor es sich bei kill/killall oder STRG+C beendet.
Es gibt dazu ein ganzen haufen verschiedener Signale (wobei für uns nur die oben genannten Situationen interessant sind):
https://de.wikipedia.org/wiki/Signal_(Unix)
Für uns sind folgende Signale wichtig:
SIGINT => Der User bricht das Script mit STRG+C ab
SIGTERM => Der User killt das Programm z.b. mit kill oder killall (was eher selten passiert, aber wir sollten es mit abfangen da früher so gearbeitet wurde)
In beiden Fällen gehen wir davon aus, das der User die Einstellungen behalten will und wir rufen keep_changes() auf.
Anfangs hatte ich noch SIGHUP drinnen, das ist aber falsch. SIGHUP wird an das Script gesendet wenn das Terminal geschlossen wird (darunter fällt auch eine abgebrochene SSH Session), da es aber durchaus passieren kann, das beim Netzwerk rekonfigurieren eine SSH Session abreist, dürfen wir in dem Fall kein keep_changes() aufrufen.
@ -76,2 +92,3 @@
echo "Reverting changes.."
echo "Reverting changes.."
# on revert we must delete the file
... delete the pid-file
rebased und @rohammer Anmerkung ausgebessert
f8b9f70009
to94d9f87e0a
rebased und @rohammer Anmerkung ausgebessert
fff-gateway: Make it easier to keep the settings in testmodeto fff-layer3: Make it easier to keep the settings in testmode@ -73,2 +87,3 @@
echo "Configuration reloaded. Changes will be reverted in 200s."
echo "Kill this script to keep changes."
echo "Kill this script or use configuregateway -k to keep changes."
Hi,
das klingt so, als ob kill die changes nicht behaelt.
Eigentlich willst du doch sagen:
Ansonsten:
Also für mich heißt das übersetzt:
"Töte dieses Script ODER nutzte configuregateway -k um die Einstellungen zu behalten"
Finde ich eigentlich passend oder?
Übrigens kp wo du das eben hier im Code kommentiert hast, aber nach meiner Sicht ist hier bereits von configure-layer3 die Rede ;)
@ -69,0 +71,4 @@
echo "Keep changes"
kill -9 $(cat /tmp/configure-layer3-pid)
rm /tmp/configure-layer3-pid
exit;
Why do we need that exit?
Bin mir nicht mehr ganz sicher aber ich glaube der Grund war wenn das trap in Zeile 82 die Funktion keep_changes() aufruft, müssen wir es sicher beenden da sonst test_changes() dennoch weiterläuft und am Ende alles revertet was ja in dem Fall nicht gewünscht ist.
Hmm, also exit != return ...
In jedem Fall kann aber der Strichpunkt weg. Und man sollte hierfür einen Kommentar einfügen.
Ja exit soll das Script auf jeden Fall sicher beenden weil wir hier dann fertig sind. Kommentar und ; entfernen mach ich gleich
94d9f87e0a
toac6e876581
Danke, wird gleich gemergt.
Pull request closed