ok... php -r 'exec("perl /home/test/college.pl >/dev/null &");' seems to do the trick... in that it returns, while running the perl process in the background...
i assume that this process will work from a web app, regardless of the user function, or even the behavior of the web server, although that may have something to do with what process/priv is running the app.... thanks, -bruce -----Original Message----- From: Justin Patrin [mailto:[EMAIL PROTECTED] Sent: Wednesday, July 21, 2004 12:21 PM To: Michael Sims Cc: [EMAIL PROTECTED] Subject: Re: [PHP] exec/system question.. On Wed, 21 Jul 2004 13:55:37 -0500, Michael Sims <[EMAIL PROTECTED]> wrote: > Michael Sims 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 &"'); > > Sorry to followup to my own post, but I just did some quick testing and apparently > none of the above (nohup, setsid) is really necessary. As long as the output of the > command is redirected somewhere and the "&" is used to start it in the background it > will continue to run even if the process that launched it exits or is killed. I > tested this with the following (named 'test.php'): > > --- > #!/usr/local/bin/php > <? > > if (isset($argv[1])) { > exec('./test.php > /dev/null &'); > } > > sleep(10); > > exec('wall testing - ignore '.getmypid()); > ?> > --- > > I opened two SSH sessions, ran the above script in one (using './test.php 1') then > immediately exited the SSH session. The PHP processes (both of them) continued to > execute and I saw the "wall" output from both scripts in my other SSH session. So > apparently the nohup setsid stuff is overkill... > Did you try it from the web? Just to be devil's advocate and be sure that, say, clicking Stop doesn't stop the background process. Also, does *killing* the original script kill the child? -- 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 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php