sub init { my ($logger_input,$xmlFile_input,$ini_file_input,$run_all_input,$gui_sync_file_input,$dump_input) = @_; #Setting and reading params from run_me readParamsFromRunme($logger_input,$xmlFile_input,$ini_file_input,$run_all_input,$gui_sync_file_input,$dump_input); #Handle Ctrl+c if not running via GUI $SIG{INT}=\&ctrl_c_handler if (!$gui_sync_file); ##kill -10 from UI $SIG{USR1}=\&usr_kill_handler; } # FUNCTION NAME: ctrl_c_handler # WRITTEN BY: Sagi # DATE: 1.11.2011 # PURPOSE: Exit the test when user press Ctrl+c # IN PARAMS: None # RETURNED VALUES: None # Sample call: sub ctrl_c_handler { #Wait for to end $SIG{'INT'}='IGNORE'; my @procs = keys (%{fatherProcess::framework_child_procs}); kill ALRM => @procs; kill SIGUSR1 => @procs; foreach my $child (@procs) { my $tmp = waitpid($child, 0); } $father_self->finishRun("user stoped"); } sub usr_kill_handler { my $signame = shift; printer::Logger_screen_message("info","got signal $signame",0,$logger); $father_self->finishRun("user stoped"); }