fff-layer3: Make it easier to keep the settings in testmode #9
|
@ -66,15 +66,34 @@ revert_changes() {
|
|||
exit 0
|
||||
}
|
||||
|
||||
keep_changes() {
|
||||
if [ -f "/tmp/configure-layer3-pid" ]; then
|
||||
echo "Keep changes"
|
||||
kill -9 $(cat /tmp/configure-layer3-pid)
|
||||
rm /tmp/configure-layer3-pid
|
||||
# we need exit because trap in test_changes() don't stop the script here and run in test_changes() after trap in the revert code
|
||||
ChristianD marked this conversation as resolved
Outdated
|
||||
exit
|
||||
else
|
||||
echo "configure-layer3 -t is not running"
|
||||
fi
|
||||
}
|
||||
|
||||
test_changes() {
|
||||
echo $$ > /tmp/configure-layer3-pid
|
||||
trap keep_changes SIGINT SIGTERM
|
||||
|
||||
reload_services
|
||||
|
||||
sleep 5
|
||||
echo "Configuration reloaded. Changes will be reverted in 200s."
|
||||
echo "Kill this script to keep changes."
|
||||
sleep 200
|
||||
echo "Reverting changes.."
|
||||
|
||||
echo "Configuration reloaded. Changes will be reverted in 200s."
|
||||
echo "Kill this script or use configure-layer3 -k to keep changes."
|
||||
|
||||
sleep 200
|
||||
|
||||
echo "Reverting changes.."
|
||||
# on revert we must delete the pid-file
|
||||
rm /tmp/configure-layer3-pid
|
||||
revert_changes
|
||||
reload_services
|
||||
}
|
||||
|
@ -86,6 +105,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 from test mode"
|
||||
echo " -a: apply changes"
|
||||
echo " -r: revert changes"
|
||||
}
|
||||
|
@ -98,6 +118,7 @@ fi
|
|||
case "$1" in
|
||||
-c) configure ;;
|
||||
-t) test_changes ;;
|
||||
-k) keep_changes ;;
|
||||
-a) apply_changes ;;
|
||||
-r) revert_changes ;;
|
||||
*) usage; exit 1 ;;
|
||||
|
|
Loading…
Reference in New Issue
Block a user
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