On Wed, 21 Jul 2004 13:16:01 -0500, Michael Sims
<[EMAIL PROTECTED]> wrote:
> Justin Patrin wrote:
> > On Wed, 21 Jul 2004 10:09:52 -0700, bruce <[EMAIL PROTECTED]>
> > wrote:
> >> 2) i could run the perl script, and have it somehow run in the
> >> background.... this would ba good, if there's a way to essentially
> [...]
> > AFAIK there's no way to do this. When the request ends (user hits
> > stop, exit or die called) the process is ended. This includes
> > children.
> 
> There are ways around that, though, at least if you're running unix:
> 
> exec('bash -c "exec nohup setsid your_command > /dev/null 2>&1 &"');
> 
> I found this method in a user contributed note underneath the documentation for
> exec() and it works rather well.  The exec call returns very quickly and the child
> process continues to run even after the parent process dies.  The important part of
> the above command is "nohup" which runs a command that ignores hangup signals.
> 

Of course...nohup. But that will only work if your provider allows it
(and has it installed).

> > If you could set it off asynchronously, there would be no
> > way of knowing when it ended as the process wouldn't have access to
> > that session any more.
> 
> If the OP could reimplement his perl script in PHP it could be passed the session ID
> as an argument.  The child process could then call session_id($argv[1]) before
> calling session_start(), and finally update the session data to indicate its current
> status.
> 
> If that's out of the question the perl script could update its status in a database
> table as you suggested...
> 

Or he could write a simple PHP wrapper that runs the perl script then
updates the session.

-- 
DB_DataObject_FormBuilder - The database at your fingertips
http://pear.php.net/package/DB_DataObject_FormBuilder

paperCrane --Justin Patrin--

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to