<?php
$tmpfile = trim(`mktemp`);
$errFile = $tmpfile . '.err';
$postFile = $tmpfile . '.post';
file_put_contents( $postFile, serialize( $_POST )
session_start();
$sessFile = $tmpfile . '.sess';
file_put_contents( $sessFile, serialize( $_SESSION );
$jobString = 'script.sh'. ' ' . $tmpfile;
$jobNumber = intval(`echo "'$jobString > $tmpfile 2> $errFile'" | batch 2>&1 | tail -n1 | cut -d ' ' -f2`);
echo "Job-Nummer: " . $jobNumber . "\n";
?>
Das ist immer noch ein Beispiel. script.sh bekommt den Name der temporären Datei und kann damit auch die Daten, z.B. $_POST, $_SESSION aus den weiteren temporären Dateien lesen. Das Skript hat dann den Job zu erledigen, den Müll wegzuräumen und dem Benutzer per Mail einen individuellen Link zu einer Ressource mit den Ergebnissen (die stehen dann hoffentlich in $tmpfile und können hoffentlich ausgewertet werden) zu senden.
Wer die Angabe machen will wie viele Jobs noch offen sind: Der Linux-Befehl atq
liefert eine nette Liste...