$cmd = "kill -INT $vpnpid"; KILLVPN: print "Sending kill commands to child processes:\n$cmd\n"; $exp1->send_slow("$cmd\n"); sleep 3; my $ps = `ps -p $vpnpid | grep -v grep | grep -v TTY`; if ($ps =~ /\w+/) { print "VPN process $vpnpid not dead yet\n $ps \nSending kill -TERM\n"; $cmd = "kill -TERM $vpnpid"; goto KILLVPN; } $exp1->hard_close(); #### Got command prompt: [root@fc10-test perl]# Sending kill commands to child processes: kill -INT 3006 VPN process 3006 not dead yet 3006 pts/4 00:00:00 openvpn Sending kill -TERM Sending kill commands to child processes: kill -TERM 3006 VPN process 3006 not dead yet 3006 pts/4 00:00:00 openvpn ...