Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: ModPerl: ModPerl

Checking Return Codes in Apache2::SubProcess->spawn_proc_prog()

 

 

ModPerl modperl RSS feed   Index | Next | Previous | View Threaded


eric.berg at barclayscapital

Oct 7, 2008, 7:25 AM

Post #1 of 4 (364 views)
Permalink
Checking Return Codes in Apache2::SubProcess->spawn_proc_prog()

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?

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.

Thanks for any insight you can provide.

Eric
_______________________________________________

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 office at 1 Churchill Place, London, E14 5HP. This email may relate to or be sent from other members of the Barclays Group.
_______________________________________________


fred at redhotpenguin

Oct 8, 2008, 9:46 AM

Post #2 of 4 (326 views)
Permalink
Re: Checking Return Codes in Apache2::SubProcess->spawn_proc_prog() [In reply to]

eric.berg[at]barclayscapital.com 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.


eric.berg at barclayscapital

Oct 8, 2008, 10:08 AM

Post #3 of 4 (327 views)
Permalink
RE: Checking Return Codes in Apache2::SubProcess->spawn_proc_prog() [In reply to]

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.

Eric

> -----Original Message-----
> From: Fred Moyer [mailto:fred[at]redhotpenguin.com]
> Sent: Wednesday, October 08, 2008 12:46 PM
> To: Berg, Eric
> Cc: modperl[at]perl.apache.org
> Subject: Re: Checking Return Codes in
> Apache2::SubProcess->spawn_proc_prog()
>
> eric.berg[at]barclayscapital.com 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 office at 1 Churchill Place, London, E14 5HP. This email may relate to or be sent from other members of the Barclays Group.
_______________________________________________


fred at redhotpenguin

Oct 8, 2008, 11:00 AM

Post #4 of 4 (331 views)
Permalink
Re: Checking Return Codes in Apache2::SubProcess->spawn_proc_prog() [In reply to]

eric.berg[at]barclayscapital.com 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:fred[at]redhotpenguin.com]
>> Sent: Wednesday, October 08, 2008 12:46 PM
>> To: Berg, Eric
>> Cc: modperl[at]perl.apache.org
>> Subject: Re: Checking Return Codes in
>> Apache2::SubProcess->spawn_proc_prog()
>>
>> eric.berg[at]barclayscapital.com 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/

ModPerl modperl RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.