@@ -66,21 +66,34 @@ debug_sleep_and_shutdown() {
66
66
if [[ " $debug " =~ ^[0-9]+$ ]]; then
67
67
local sleep_minutes=" $debug "
68
68
local sleep_seconds=$(( sleep_minutes * 60 ))
69
- log " Debug: Sleeping ${sleep_minutes} minutes before shutdown..."
69
+ log " Debug: Sleeping ${sleep_minutes} minutes before shutdown..." || true
70
70
# Detect the SSH user from the home directory
71
71
local ssh_user=$( basename " $homedir " 2> $dn || echo " ec2-user" )
72
72
local public_ip=$( curl -s http://169.254.169.254/latest/meta-data/public-ipv4)
73
- log " SSH into instance with: ssh ${ssh_user} @${public_ip} "
74
- log " Then check: /var/log/runner-setup.log and /var/log/runner-debug.log"
73
+ log " SSH into instance with: ssh ${ssh_user} @${public_ip} " || true
74
+ log " Then check: /var/log/runner-setup.log and /var/log/runner-debug.log" || true
75
75
sleep " $sleep_seconds "
76
- log " Debug period ended, shutting down"
76
+ log " Debug period ended, shutting down" || true
77
77
elif [ " $debug " = " true" ] || [ " $debug " = " True" ] || [ " $debug " = " trace" ]; then
78
78
# Just tracing enabled, no sleep
79
- log " Shutting down immediately (debug tracing enabled but no sleep requested)"
79
+ log " Shutting down immediately (debug tracing enabled but no sleep requested)" || true
80
80
else
81
- log " Shutting down immediately (debug mode not enabled)"
81
+ log " Shutting down immediately (debug mode not enabled)" || true
82
82
fi
83
- shutdown -h now
83
+
84
+ # Try multiple shutdown methods as fallbacks (important when disk is full)
85
+ shutdown -h now 2> /dev/null || {
86
+ # If shutdown fails, try halt
87
+ halt -f 2> /dev/null || {
88
+ # If halt fails, try sysrq if available (Linux only)
89
+ if [ -w /proc/sysrq-trigger ]; then
90
+ echo 1 > /proc/sys/kernel/sysrq 2> /dev/null
91
+ echo o > /proc/sysrq-trigger 2> /dev/null
92
+ fi
93
+ # Last resort: force immediate reboot
94
+ reboot -f 2> /dev/null || true
95
+ }
96
+ }
84
97
}
85
98
86
99
# Function to handle fatal errors and terminate the instance
0 commit comments