in reply to Kill sent from perl expect not working

The VPN client is executing as a different user because of sudo. I'm guessing you don't have the permissions to kill the client. Check the error it's returning to confirm. If so, just sudo the kill as well.

Replies are listed 'Best First'.
Re^2: Kill sent from perl expect not working
by druidmatrix (Acolyte) on Apr 29, 2010 at 19:38 UTC
    The VPN Client is running as root, as is the $exp1 expect object in the code above.
      You seem to have skipped the "check the error it's returning" step.

        Thank you for your response Ikegami. I am running Expect in the verbose mode, so I would expect to see any errors spew on the screen. However, I took your advise and added the following two lines after the "kill" command above to see what is being returned:

        $exp1->send_slow("$cmd\n"); $exp1->expect($timeout, -re=>'.*'); print "Got return from Expect:\n".$exp1->match()."\n";
        But I get no return back from the pattern match:
        Got command prompt: [root@fc10-test perl]# Sending kill commands to ch +ild processes: /bin/kill -INT 4361 Starting EXPECT pattern matching... at /home/csit/usr/perl/lib/site_perl/5.10.1/Expect.pm line 561 Expect::expect('Expect=GLOB(0x93611a0)', 10, '-re', '.*') call +ed at vpn_client1.pl line 132 main::sigInt('INT') called at vpn_client1.pl line 100 eval {...} called at vpn_client1.pl line 100 Got return from Expect: VPN process 4361 not dead yet 4361 ? 00:00:00 openvpn Sending kill -TERM Sending kill commands to child processes: /bin/kill -TERM 4361 Starting EXPECT pattern matching... at /home/csit/usr/perl/lib/site_perl/5.10.1/Expect.pm line 561 Expect::expect('Expect=GLOB(0x93611a0)', 10, '-re', '.*') call +ed at vpn_client1.pl line 132 main::sigInt('INT') called at vpn_client1.pl line 100 eval {...} called at vpn_client1.pl line 100 Got return from Expect: VPN process 4361 not dead yet 4361 ? 00:00:00 openvpn