fix: add EXIT trap to ensure encryption flag and temp files are cleaned up on crash
This commit is contained in:
@@ -148,6 +148,8 @@ restore_encryption_flag() {
|
|||||||
clean_up() {
|
clean_up() {
|
||||||
|
|
||||||
# Perform program exit housekeeping
|
# Perform program exit housekeeping
|
||||||
|
# Clear EXIT trap first so that the exit below does not fire it again.
|
||||||
|
trap - EXIT
|
||||||
restore_encryption_flag
|
restore_encryption_flag
|
||||||
[[ -n "$recovery_php_file" ]] && rm -f "$recovery_php_file" 2> /dev/null
|
[[ -n "$recovery_php_file" ]] && rm -f "$recovery_php_file" 2> /dev/null
|
||||||
rm -rf "$LOCK_DIR"
|
rm -rf "$LOCK_DIR"
|
||||||
@@ -1179,7 +1181,10 @@ su -c "$PHP_BIN $INSTALL_DIR/occ config:system:set encryption_skip_signature_che
|
|||||||
if [[ $? -eq 0 ]] ; then
|
if [[ $? -eq 0 ]] ; then
|
||||||
echo_ok
|
echo_ok
|
||||||
_encryption_flag_changed=true
|
_encryption_flag_changed=true
|
||||||
trap 'restore_encryption_flag; clean_up 1' SIGHUP SIGINT SIGTERM
|
# Trap signals AND normal/abnormal exit so that the encryption flag
|
||||||
|
# and temp files are always cleaned up — even on a syntax error or
|
||||||
|
# an unexpected crash (EXIT fires for any bash exit, including errors).
|
||||||
|
trap 'clean_up 1' SIGHUP SIGINT SIGTERM EXIT
|
||||||
else
|
else
|
||||||
echo_failed
|
echo_failed
|
||||||
fatal "Could not enable encryption_skip_signature_check: $(cat "$log_file")"
|
fatal "Could not enable encryption_skip_signature_check: $(cat "$log_file")"
|
||||||
|
|||||||
@@ -183,6 +183,8 @@ usage() {
|
|||||||
clean_up() {
|
clean_up() {
|
||||||
|
|
||||||
# Perform program exit housekeeping
|
# Perform program exit housekeeping
|
||||||
|
# Clear EXIT trap first so that the exit below does not fire it again.
|
||||||
|
trap - EXIT
|
||||||
[[ -n "$recreate_php_file" ]] && rm -f "$recreate_php_file" 2> /dev/null
|
[[ -n "$recreate_php_file" ]] && rm -f "$recreate_php_file" 2> /dev/null
|
||||||
rm -rf "$LOCK_DIR"
|
rm -rf "$LOCK_DIR"
|
||||||
blank_line
|
blank_line
|
||||||
@@ -751,7 +753,9 @@ fi
|
|||||||
# -
|
# -
|
||||||
if mkdir "$LOCK_DIR" 2> /dev/null ; then
|
if mkdir "$LOCK_DIR" 2> /dev/null ; then
|
||||||
|
|
||||||
trap clean_up SIGHUP SIGINT SIGTERM
|
# Trap signals AND normal/abnormal exit so that temp files and the
|
||||||
|
# lock directory are always removed — even on an unexpected crash.
|
||||||
|
trap 'clean_up 1' SIGHUP SIGINT SIGTERM EXIT
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
|
|||||||
@@ -167,6 +167,8 @@ usage() {
|
|||||||
clean_up() {
|
clean_up() {
|
||||||
|
|
||||||
# Perform program exit housekeeping
|
# Perform program exit housekeeping
|
||||||
|
# Clear EXIT trap first so that the exit below does not fire it again.
|
||||||
|
trap - EXIT
|
||||||
[[ -n "$restore_php_file" ]] && rm -f "$restore_php_file" 2> /dev/null
|
[[ -n "$restore_php_file" ]] && rm -f "$restore_php_file" 2> /dev/null
|
||||||
rm -rf "$LOCK_DIR"
|
rm -rf "$LOCK_DIR"
|
||||||
blank_line
|
blank_line
|
||||||
@@ -781,7 +783,9 @@ if mkdir "$LOCK_DIR" 2> /dev/null ; then
|
|||||||
|
|
||||||
# - Remove lockdir when the script finishes, or when it receives a signal
|
# - Remove lockdir when the script finishes, or when it receives a signal
|
||||||
# -
|
# -
|
||||||
trap clean_up SIGHUP SIGINT SIGTERM
|
# Trap signals AND normal/abnormal exit so that temp files and the
|
||||||
|
# lock directory are always removed — even on an unexpected crash.
|
||||||
|
trap 'clean_up 1' SIGHUP SIGINT SIGTERM EXIT
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user