|
Hi all...
ve been doing some IPC scripts....not very succesfully..
Let me introduce it to you:
<code>
#!/usr/bin/perl
use IPC::Open3;
use POSIX qw( :sys_wait_h );
my $pid;
my $cmd = "/forum/extern.html";
my $cmd2 = "/forum/extern2.html";
my $exit_code = 0;
my $exit_code2 = 0;
my $help = 0;
my $help2 = 0;
$pid = open3(*MMRET_IN, *MMRET_OUT, *MMRET_ERR, $cmd);
print "Process spawned with PID = $pid \n";
$help = waitpid($pid,WNOHANG);
print "HELP_VALUE is $help\n";
$exit_code = $? >> 8;
print "ExitCODE is $exit_code \n";
$pid2 = open3(*MMRET_IN2, *MMRET_OUT2, *MMRET_ERR2, $cmd2);
print "Process spawned with PID = $pid2 \n";
$help2 = waitpid($pid2,WNOHANG);
print "HELP_VALUE is $help2\n";
$exit_code2 = $? >> 8;
print "ExitCODE is $exit_code2 \n";
</code>
"/forum/extern.html" and "/forum/extern2.html" are scripts that I want to execute from the main script - as child processes...
extern.pl exits with the value "2" and
extern2.pl exits with the value "1"
I would expect that in $exit_code2 would be stored the exit value from the extern2.pl - "1"
Problem is that it does not happen...
In variable $? stays the exit value of script extern.pl and doesn not get overwritten byt the exit value of extern2.pl script.
Does anyone know how can I get the exit value of second executed scrip "/forum/extern2.html"?
Thanks a LOT
gyre
|
|
|
|
|
|
|
// |