2

私はこのコードを持っています:

<?php
    exec("sleep 15m; ls -l");
    echo "Done";
?>

しかし、スタックし、15分が経過するまでロードを停止しません。とにかく、execの実行を待たないでください。

4

2 に答える 2

2

PHPから-exec

exec
...

プログラムがこの関数で開始された場合、プログラムがバックグラウンドで実行を継続するには、プログラムの出力をファイルまたは別の出力ストリームにリダイレクトする必要があります。そうしないと、プログラムの実行が終了するまでPHPがハングします。

したがって、出力リダイレクトしてバックグラウンドで開始する必要があります

exec("(sleep 15m; ls -l) >/dev/null 2>&1 &");
于 2013-01-26T22:48:29.843 に答える
0

私がそれを正しく理解しているなら、あなたはバックグラウンドであなたのコマンドを実行したいと思うでしょう:

exec("(sleep 15m ; ls -l) &")
于 2013-01-26T21:30:10.370 に答える