On Saturday 19 February 2005 18:44, you wrote:
> Igor Shevchenko wrote:
> > On Saturday 19 February 2005 03:06, Stas Bekman wrote:
> >>What about?
> >>$r->spawn_proc_prog
> >>http://perl.apache.org/docs/2.0/api/Apache/SubProcess.html#C_spawn_proc_p
> >>ro g_
> >
> > Thanks for those links, Stas! I had to find them by myself as they are in
> > docs...
> >
> > The following worked for me:
> >
> > A helper subroutine:
> >
> > sub safe_exec {
> >     my $out_fh = $apr->spawn_proc_prog ( '/path/to/exec_helper.pl', [EMAIL 
> > PROTECTED]
> > ); close $out_fh;
> > }
>
> I've just committed a change which does this for you if you call that
> method in a void context, so the above can be changed into:
>
>    $apr->spawn_proc_prog ( '/path/to/exec_helper.pl', [EMAIL PROTECTED] );

Thanks!

> > And a helper script:
> >
> > #!/usr/bin/perl -w
> > use strict;
> > use warnings;
> > use POSIX;
>
> performance-wise this is silly :)
> See 13.5.2 in http://modperlbook.org/html/ch13_05.html for details.

Oops, thanks for the tip. I knew about the memory/runtime bloat, I was just 
not realizing that bare "use POSIX" would load all vs none with "use 
POSIX()". exec_helper.pl is rarely-used script, but I'll run thru my 
ModPerl::Registry scripts and modules to fix this... again, thanks!

> > POSIX::setsid;
> >
> > close STDIN;
> > open STDOUT, '+>>', '/path/to/apache/error_log';
> > open STDERR, '>&STDOUT';
> >
> > exec ( @ARGV );
>
> why do you need to call exec() here? It doesn't detach if you don't call
> it? I think it should make no difference at all.

I need to run the real script somehow, hence the call to "exec".

-- 
Best Regards,
Igor Shevchenko

Reply via email to