[EMAIL PROTECTED] wrote:
Am I missing something, Fred, or is there actually something in that
test that indicates how to read the exit status of the process (i.e.,
$?)?

I have read this a number of times, but have yet to find anything
relevant there.

The short answer is no, spawn_proc_proc() does not return the exit status.

The long answer is you can probably do this with mod_perl if you dig into the APR libraries and use apr_proc_wait to call the program:

http://apr.apache.org/docs/apr/1.2/group__apr__thread__proc.html#g0936f7a7fe7e2d5e08979c9f343a5a1b

Several of the apr functions are mapped in the mod_perl-2.0/xs/APR directory. Unfortunately apr_proc_wait is not one of them, perhaps APR::Proc is the right place to expose this function? (Gozer|Toersten??) I'll defer to the wisdom of others on this list who are more experienced in this area.

Hope that helps a bit - it looks like it can be done but just hasn't been done yet. If you are at ApacheCon next month feel free to track me down and I'll see if maybe we can hack it into place.



Eric

-----Original Message-----
From: Fred Moyer [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 08, 2008 12:46 PM
To: Berg, Eric
Cc: modperl@perl.apache.org
Subject: Re: Checking Return Codes in Apache2::SubProcess->spawn_proc_prog()

[EMAIL PROTECTED] wrote:
I'm using spawn_proc_prog() to run external programs from
apache, but
can't find any docs on how to check the return status.  It doesn't
appear to set $?, nor have I found any reference to
variables or methods
that would provide that information.

Can anybody help me with this?
Was this part of the documentation useful or did it not explain what you need?

http://perl.apache.org/docs/2.0/api/Apache2/SubProcess.html#C_
spawn_proc_prog_

The specific problem that I'm trying to solve has to do
with executing
CVS commands from within the context of Apache2.  CVS returns both
STDOUT and STDERR in response to, in this case, the rdiff
command.  It
is sometimes possible to check the content of STDERR to
determine the
status of a command, but the STDERR is often valid output.
I suppose
that using the -q to suppress output of nice-to-have STDERR
is an option
too, but I'm looking for something more discrete.
_______________________________________________

This e-mail may contain information that is confidential, privileged or 
otherwise protected from disclosure. If you are not an intended recipient of 
this e-mail, do not duplicate or redistribute it by any means. Please delete it 
and any attachments and notify the sender that you have received it in error. 
Unless specifically indicated, this e-mail is not an offer to buy or sell or a 
solicitation to buy or sell any securities, investment products or other 
financial product or service, an official confirmation of any transaction, or 
an official statement of Barclays. Any views or opinions presented are solely 
those of the author and do not necessarily represent those of Barclays. This 
e-mail is subject to terms available at the following link: 
www.barcap.com/emaildisclaimer. By messaging with Barclays you consent to the 
foregoing.  Barclays Capital is the investment banking division of Barclays 
Bank PLC, a company registered in England (number 1026167) with its registered 
off
ice at 1 Churchill Place, London, E14 5HP.  This email may relate to or be sent 
from other members of the Barclays Group.
_______________________________________________


--
Red Hot Penguin Consulting LLC
mod_perl/PostgreSQL consulting and implementation
http://www.redhotpenguin.com/

Reply via email to