title: PHP shell_exec wait for script to finish?
body: <p>I have a PHP script that queries a database for a list of jobs to be done and fires off other PHP scripts based on what it finds in the database (basically a process queue). </p>
  
  <p>Some of the scripts that the queue runner script executes may take 30 seconds or so to finish running (generating PDFs, resizing images, etc).</p>
  
  <p>The problem is that <code>shell_exec()</code> in the queue runner script calls the processing scripts, but then doesn't wait for them to finish, resulting in the queue not being completed.</p>
  
  <p>Queue runner script:</p>
  
  <pre><code>#!/usr/bin/php
  &lt;?php
      // Loop through database and find jobs to be done
      shell_exec(sprintf("/root/scripts/%s.php", $row['jobName']));
  ?&gt;
  </code></pre>
  
  <p>Job script:</p>
  
  <pre><code>#!/usr/bin/php
  &lt;?php
      shell_exec("/usr/bin/htmldoc -t pdf --webpage test.html &gt; test.pdf");
      // Update database to mark job as completed
  ?&gt;
  </code></pre>
  
  <p>Running the job script directly from the command line works and the PDF is created.</p>
  
  <p>Any ideas on how to fix this? Or a better way to run a process queue?</p>