Hi all,
I'm developing a web server which forks a process and then the child process goes off and does some
processing and I do not want to wait for it to return. The child process runs a C++ program (i.e.,
not a Perl script). Thanks to replies here a while back, I got things working by performing a
"fork" followed by a "system". So all was well...
Now, things have changed slightly and the C++ program needs to make use of
shared libraries and right now, it cannot find them. Does anyone have any
suggestions on how I would do that? Obviously, I need to update
$LD_LIBRARY_PATH; but how would I do it? Currently, I'm doing something like
this:
-----
use Env qw(LD_LIBRARY_PATH);
my $cmd = "...";
my @args = ("...");
$ENV{LD_LIBRARY_PATH} = "<new path>"; ## Or prepend to it
my $kid = fork;
if (!defined $kid) {
## Some error happened
}
elsif ($kid == 0) {
## Open/close filehandles, etc.
## Run the command
system ($cmd, @args);
CORE::exit (0);
}
## Parent process continues here...
-----
It is possible I'm doing something wrong, but so far, this isn't working. And if I replace the $cmd with a Perl script and try to print out $ENV{LD_LIBRARY_PATH}, there is nothing.
Am I close? I've googled a bit and I lost the page that I saw it (went to too
many pages), but one person put $cmd and the updated environment variable into
a bash script and then ran the bash script. Any other thoughts?
Thank you!
Ray