さて、 phpからバックグラウンドプロセスを実行して、バックグラウンドプロセス を実行するとうまくいきます。問題は、そのプロセスも返す必要があることです。私にとって明らかな解決策は次のとおりです。
$cmd = "($cmd > $outputfile 2>&1 || echo $? > $returnfile) & echo $! > $pidfile";
exec($cmd);
コマンドラインで生成されたコマンドを実行すると、バックグラウンドになり、ファイルが期待どおりに入力されます。問題は、php exec() の実行時にコマンドがバックグラウンドに移行しないことです (少なくとも、コマンドが終了するまで exec は戻りません)。nohup と wait $pid でバリエーションを試しましたが、まだ解決策はありません。
何かご意見は?