kill child process if xcat command stopped by signal
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@3885 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		| @@ -214,7 +214,14 @@ sub process_command { | ||||
|         # Use the CHID signal to control the  | ||||
|         #connection number of certain hcp     | ||||
|         $SIG{CHLD} = sub { my $pid = 0; while (($pid = waitpid(-1, WNOHANG)) > 0)  | ||||
|             { $nodes->{$pid_owner{$pid}}{'runprocess'}--; $children--; } }; | ||||
|             { $nodes->{$pid_owner{$pid}}{'runprocess'}--; delete $pid_owner{$pid}; $children--; } }; | ||||
|  | ||||
|         $SIG{INT} = $SIG{TERM} = sub { #prepare to process job termination and propogate it down | ||||
|             foreach (keys %pid_owner) { | ||||
|                 kill 9, $_; | ||||
|             } | ||||
|             exit 0; | ||||
|         }; | ||||
|  | ||||
|         my $hasnode = 1; | ||||
|         while ($hasnode) { | ||||
|   | ||||
| @@ -1798,18 +1798,6 @@ proc Firmware_Dump { device_path phandle } { | ||||
|     } | ||||
| } | ||||
|  | ||||
| # | ||||
| # Signal handling stuff | ||||
| # | ||||
| trap { | ||||
|     global PROGRAM | ||||
|  | ||||
|     set signal SIG[trap -name] | ||||
|  | ||||
|     send_user "$PROGRAM: Received signal named '$signal'\n" | ||||
|     exit 3 | ||||
| } {INT HUP QUIT TERM} | ||||
|  | ||||
|  | ||||
|  | ||||
| # | ||||
| @@ -2081,6 +2069,17 @@ if [ catch { spawn $CONSOLEBIN $name -f } rsconole_pid ] { | ||||
| set spawn_id_rconsole $spawn_id | ||||
| nc_msg "$PROGRAM Status: spawn_id is $spawn_id\n" | ||||
|  | ||||
| # | ||||
| # Signal handling stuff | ||||
| # | ||||
| trap { | ||||
|     global PROGRAM | ||||
|     set signal SIG[trap -name] | ||||
|     send_user "$PROGRAM: Received signal named '$signal'\n" | ||||
|     exec kill -KILL $spawn_id_rconsole $ssh_spawn_id | ||||
|     exit 3 | ||||
| } {INT HUP QUIT TERM} | ||||
|  | ||||
| set timeout 10 | ||||
| set pwd_sent 0 | ||||
| send_user "# Connecting to $name\n" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user