mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-05-01 21:30:09 +00:00
Handle job-control signals and clear tostop
Prevent terminal job-control signals from suspending the script during recovery by trapping TSTP, TTIN and TTOU (instead of only TSTP) and restoring them on exit. Also clear the terminal 'tostop' flag in stop_spinner() with `stty -tostop` to avoid background spinner I/O from stopping the process group.
This commit is contained in:
parent
340d999b2b
commit
b09f2db2a9
2 changed files with 6 additions and 4 deletions
|
|
@ -4098,10 +4098,11 @@ EOF'
|
|||
|
||||
# Installation failed?
|
||||
if [[ $install_exit_code -ne 0 ]]; then
|
||||
# Prevent SIGTSTP (Ctrl+Z) from suspending the script during recovery.
|
||||
# Prevent job-control signals from suspending the script during recovery.
|
||||
# In non-interactive shells (bash -c), background processes (spinner) can
|
||||
# trigger terminal-related signals that stop the entire process group.
|
||||
trap '' TSTP
|
||||
# TSTP = Ctrl+Z, TTIN = bg read from tty, TTOU = bg write to tty (tostop)
|
||||
trap '' TSTP TTIN TTOU
|
||||
|
||||
msg_error "Installation failed in container ${CTID} (exit code: ${install_exit_code})"
|
||||
|
||||
|
|
@ -4551,8 +4552,8 @@ EOF'
|
|||
post_update_to_api "failed" "$install_exit_code" "force"
|
||||
$STD echo -e "${TAB}${CM:-✔} Telemetry finalized"
|
||||
|
||||
# Restore default SIGTSTP handling before exit
|
||||
trap - TSTP
|
||||
# Restore default job-control signal handling before exit
|
||||
trap - TSTP TTIN TTOU
|
||||
exit $install_exit_code
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -607,6 +607,7 @@ stop_spinner() {
|
|||
|
||||
unset SPINNER_PID SPINNER_MSG
|
||||
stty sane 2>/dev/null || true
|
||||
stty -tostop 2>/dev/null || true
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue