in reply to Re: Kill sent from perl expect not working
in thread Kill sent from perl expect not working

The VPN Client is running as root, as is the $exp1 expect object in the code above.
  • Comment on Re^2: Kill sent from perl expect not working

Replies are listed 'Best First'.
Re^3: Kill sent from perl expect not working
by ikegami (Patriarch) on Apr 29, 2010 at 20:12 UTC
    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

        I am running Expect in the verbose mode, so I would expect to see any errors spew on the screen.

        Assuming a bourne-ish shell, the error code returned is present in its $? variable. You'll need to output its contents. (To be clear, I don't mean Perl's similar $? variable.)

        ...Then again, my kill is quite noisy when it fails.

        $ kill -INT 21161 bash: kill: (21161) - Operation not permitted $ echo $? 1