| Tarak Parekh 2004-05-17, 9:30 pm |
| Hello,
I've been trying to figure this out for the past couple of days but
am hitting a wall.
I am using Net::Telnet 3.03 with a modification in which
the SIGINT is sent on the wire to the remote command being run.
The short of the script is:
-----
$host1 = new Net::Telnet("host-A");
# Successfully did a open/login
if ($pid = fork) {
# Parent process
# do something that does not involve $host1 or $host2
} else {
# Child process
$host2 = new Net::Telnet("host-A");
# Successfully did a open/login
$host2 -> cmd(<A blocking command, lets say sleep 1000> );
exit 1;
}
# Kill the child process
kill 'INT' $pid;
$rval = waitpid($pid, &WNOHANG);
# Invoke a command on host-A
$host1 -> cmd (<A short command, lets say sleep 10> );
------
The last line of the script times-out within 11 seconds, and I do not
see that command being executed on host-A (by listing the processes
on host-A).
I've tried moving the last line before the "kill", but it has not helped.
I am unable to figure out the problem. Any ideas?
thanks,
tarak
|