Only one timer may be counting at once. Each call disables the previous timer, and an argument of
0 may be supplied to cancel the previous timer without starting a new one.
$SIG{ALRM} = sub { system("killall -9 firefox") or warn "Fail to kill firefox process \n"; print join '', time2str("[%Y-%m-%d %H:%M:%S] ", time), "Wait too long, kill the firefox process \n"; };