bashを使用して、バックグラウンドで並列でいくつかのコマンドを実行しようとしています。これが私がやろうとしていることです:
forloop {
//this part is actually written in perl
//call command sequence
print `touch .file1.lock; cp bigfile1 /destination; rm .file1.lock;`;
}
バックティック( ``)の間の部分は、新しいシェルを生成し、コマンドを連続して実行します。つまり、元のプログラムへの制御は、最後のコマンドが実行された後にのみ戻ります。ステートメント全体をバックグラウンドで実行したいのですが(出力/戻り値は期待していません)、ループを実行し続けたいと思います。
呼び出し元のプログラム(ループを持つプログラム)は、生成されたすべてのシェルが終了するまで終了しません。
perlのスレッドを使用して、さまざまなシェルを呼び出すさまざまなスレッドを生成することもできますが、それはやり過ぎのようです...
シェルを起動し、一連のコマンドを与えて、バックグラウンドに移動するように指示できますか?