Add END {} block to restore fans on many kinds of errors/interrupts. Remove arugment from restorefans --- lm_sensors-2.8.7/prog/pwm/fancontrol 2004-06-14 22:12:52.000000000 -1000 +++ lm_sensors-2.8.7/prog/pwm/fancontrol-patched 2004-06-14 22:11:31.000000000 -1000 @@ -73,6 +73,8 @@ sub calc(@); sub UpdateFanSpeeds(); +END { restorefans(); } + our $opt_d; getopts('d'); @@ -294,8 +296,6 @@ ################################################################ restorefans() sub restorefans() { - my $sigtype = shift; - $SIG{TERM} = 'IGNORE'; $SIG{HUP} = 'IGNORE'; $SIG{INT} = 'IGNORE';