2

iter.php という名前の php ファイルがあります。これは、bash の入力から簡単に実行できます。

php iter.php >> result.txt

そして、それを繰り返すだけで、連続して複数回実行できます。ただし、それらを同時に実行する必要があります。つまり、2 つのインスタンスを続けて実行すると、2 つのインスタンスはほぼ同時に終了し、互いにすぐに実行するのではなく、すぐに出力されます。

これをbashで実現できますか?

4

2 に答える 2

4

を使用して&

php iter.php >> result.txt & php iter.php >> result.txt

これが機能していることをテストできます

php iter.php >> result.txt & sleep 10000 & php iter.php >> result.txt
于 2013-02-18T07:07:19.267 に答える
2
!#/bin/bash

seq $1 | while read num do
    php iter.php >> $2 &
done

上記の bash スクリプトは、$1(最初のスクリプト パラメーター) プロセスを同時に実行し、結果を$2(2 番目の bash パラメーター) に出力する必要があります。

PHP スクリプトが非常に高速に実行される場合、実際には同時実行の結果ではなく、順次実行の結果が表示される可能性があることに注意してください。次のいずれかによって異なります。

  • お使いのシステムがモノコアまたはマルチコア: 後者で同時結果が得られる可能性が高くなります。
  • モノコアでは、スクリプトの実行にスケジューリングの「サイクル」よりも多くの時間がかかり、そのサイクルの後、bash プロセスが CPU を取得するかどうか (上記のサイクルには一定の期間があると仮定しますが、これは必ずしも真実ではありません)、
  • 出力へのアクセスは並行することができます(すべてが等しい場合、シェルのリダイレクトはそれを許可する必要があります)
于 2013-02-18T07:35:42.097 に答える