Re: CLI script & exec() - how to control what gets dumped on the screen.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jochem Maas wrote:
 I have been trying to figure out how to use exec to run some
 commandline scripts (some perl scripts & mysql in this case) WITH the
 output of the commands run via exec being shown on the screen.

 neither of these examples have the desired effect:

 $output = array(); $exit = 0; exec('apache2ctl graceful', $output,
 $exit);


 $output = array(); $exit = 0; @exec('apache2ctl graceful', $output,
 $exit);

 please someone tell me there is a decent way to do this (something to
 do with STD input/output redirection or something?) and that I'm not
 left with trying something like:

 ob_start(); $output = array(); $exit1 = $exit2 = 0; @exec('apache2ctl
 graceful', $output, $exit1); ob_end_clean();

 ... of which I don't even know if it would work.

 anyone care to share their clue?

Chances are that the output is being sent to stderr instead of stdout. You need to redirect stderr output to stdout in the command...

   exec('apache2ctl graceful 2>&1', $output, $exit);

Also, in my experience it's better to provide the full path to anything you shell out to from PHP, especially if it's going to be executed from a web request.

-Stut

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux